将文本文件中的每一行转换为JSON并将其发布到Python中的api

将文本文件中的每一行转换为JSON并将其发布到Python中的api,python,python-3.x,python-2.7,python-requests,Python,Python 3.x,Python 2.7,Python Requests,我有一个用例,需要为文本文件中的每一行生成JSON,并向API发出post请求。这是文件的外观: Member_ID,Login_ID,First_Name,Last_Name,Entity ID1,Jim1,Jim,Kong,Entity1 ID2,OlilaJ,Olila,Jayavarman,Entity1 ID3,LisaKop,Lisa,Kopkingg,Entity1 ID4,KishoreP,Kishore,Pindhar,Entity1 ID5,Gobi123,Gobi,Nada

我有一个用例,需要为文本文件中的每一行生成JSON,并向API发出post请求。这是文件的外观:

Member_ID,Login_ID,First_Name,Last_Name,Entity
ID1,Jim1,Jim,Kong,Entity1
ID2,OlilaJ,Olila,Jayavarman,Entity1
ID3,LisaKop,Lisa,Kopkingg,Entity1
ID4,KishoreP,Kishore,Pindhar,Entity1
ID5,Gobi123,Gobi,Nadar,Entity1

我是API界的新手,所以我想知道如何只使用Member_ID和Login_ID参数进行post调用。成功发布到api的每一行的输出都需要显示为日志。

您真幸运!Python使这变得非常简单

import json
import requests

delim = "," # Just in case you switch to tsv or something

with open('file.csv', 'r') as file:
    for line in file:
        line_list = line.split(delim)
        Member_ID = line_list[0]
        Login_ID = line_list[1]
        payload = { # Or enclose this in json.dumps()
            "Member_ID": Member_ID,
            "Login_ID": Login_ID
        }
        r = requests.post("your-target-url.com", data=payload)

这里发生的事情是,您正在处理这些行,拆分它们,然后将它们作为HTTP POST请求的有效负载传递。您可能希望添加逻辑以跳过标题行,或者添加参数以使用API进行身份验证,但这是一种简单的方法来完成您所说的内容。

文章的外观取决于您使用的API。你用的是什么API?但是如果我想逐行操作呢,因为我猜一旦负载变得太大,API将无法处理它。这是逐行操作。Python允许您将文件视为序列。在我的示例中,line In file意味着逐行执行和do:foo-所以有效负载会被重写,csv文件的每一个时间第一行都将是头,所以要获得实际的成员id和登录id,您应该用文件[1:]开始您的循环哦!我只是看不清楚而已!非常感谢你!我将尝试这种方法。此外,如果我只想将转换后的每一行的日志打印到一个文件中,然后作为POST请求传递,我该怎么做?是的,我接受了答案,谢谢!我还有一个问题,关于这个问题,如果文件大小很大,比如超过一百万条记录,我可以在python中使用什么?是否有任何多线程可以使流程更高效?