在JSON文件的REST有效负载中传递UID / PWD

时间:2018-09-20 12:02:45

标签: json python-3.x rest

我必须将多个JSON文件(每个具有约10k值)发布到REST服务,这通常是一个简单的过程。需要注意的是;此特定服务要求在有效负载中传递ID和API_KEY。我可以轻松地执行一次,但是当我尝试在有效负载JSON文件中传递凭据时,出现500错误。

一次性代码(可以正常工作)

import requests
import json

url = '<my-url>'
payload = {
    'client_id' :'<my-id>',
    'api_key'   :'<my-key>',
    "data": { 
                  <my-data>
          }}
head = {'Content-Type': 'application/json'}
r = requests.post(url, headers=head, data=json.dumps(payload))
print(r.status_code)

JSON文件示例(已添加ID和KEY)

[
{"client_id" :"<my-id>",
"api_key":"<my-key>",
"data":{
 {"val1": "string", "val2": "string", "val3": float}
}}
]

要处理JSON文件的代码

import requests
import json

with open ('data.json', 'r') as payload:
    url = '<my-url>'
    head = {'Content-Type': 'application/json'}
    r = requests.post(url, headers=head, data=payload)
    print(r.status_code)

我假设添加了UID / PWD的JSON文件不正确。任何见解都将非常有帮助。

1 个答案:

答案 0 :(得分:0)

在JSON中,字符串必须以"而不是'分隔。

由于您的第一个示例已经可以正常工作,因此,为了进行进一步的故障排除,我建议对其进行修改以将JSON写入文件中,然后查看第二个版本的代码是否可以与该文件正常工作。如果是,则问题出在您当前的JSON文件中。