我需要使用Python来使用JSON格式执行POST请求。我现在拥有的是
url = 'http://mysurl.org'
data = {my data }
headers = {'content-type': 'application/json'}
r = requests.post(url,data= json.dumps(data, headers=headers)
当我的数据不是一行而是500行:
时出现问题[
{
"Id" : "abc123",
"usr": "u1",
"pwd" : "p1"
},
{
"Id" : "abc124",
"usr": "u2",
"pwd" : "p2"
},
{
"Id" : "abc125",
"usr": "u3",
"pwd" : "p3"
}
.......
]
这真的让我失望,因为" Id"字段来自随机生成器:id = gennum()
usr来自查询:usr = sqlout[0][0]
,而pwd来自pwd = sqlout[0][1]
。
我真的不知道如何将500行数据读入我的文件data=....
我尝试使用data.append
,但在此之后不知道如何继续。
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++
[更新]抱歉,这个问题并不具体。我的数据来自三个不同的领域:
(1)id行来自随机数生成器:gennum()
(2)从查询我的数据库。 sqlout变量将有500行输出:
用户和密码。所以基本上是user = sqlout [0] [0],而pwd将= sqlout [0] [1]并且他们需要在一个请求中一起在post请求体中。所以当我发送帖子请求时,我的请求体将包含500条json数据条目,如下所述。希望这会稍微清理一下这个问题。
答案 0 :(得分:0)
with open('/path/to/json_file') as f:
data = f.read()
url = 'http://mysurl.org'
headers = {'content-type': 'application/json'}
r = requests.post(url, data=data, headers=headers)
阅读评论后更新。
您可以使用zip
和list comprehension从多个数据源制作词典:
data = [{'id': id, 'usr': usr, 'pwd': pwd} for id,usr,pwd in
zip(id_data_generator, usr_data_generator, pwd_data_generator)]