使用json.dumps时failed.post失败

时间:2017-08-31 19:27:05

标签: python json python-requests

使用Python 3.5并请求2.18.4我需要将数据发送到另一个服务,并且由于某种原因它当前失败了。 在收到并清理来自其他服务的数据后发送,最终验证数据并将其设置为本机python dict。 这在数据被硬编码并且我没有使用传入数据(硬编码的json字符串)时有效:

def my_post_method(self, url, data):
    # import requests (above)
    return requests.post(
        url,
        data='{"keyA":"valA", "keyB":"valB" ... }',
        headers={'Content-Type': 'application/json'},
    ) # status 200

但由于某种原因,我不能用原始数据发送它。

def my_post_method(self, url, data):
    # import requests, json (above)
    d = json.dumps(data)
    return requests.post(
        url,
        data=d,
        headers={'Content-Type': 'application/json'},
    ) # status 400 
从上面

d:{"keyA":"valA", "keyB":"valB" ... }

我尝试使用请求json参数而不是数据,但是另一个服务显然期望另一端的数据参数。 这是否意味着我发布的服务正在等待json格式的字符串?

1 个答案:

答案 0 :(得分:2)

我会在json中使用接受Python词典的requests.post参数,如果您使用的是至少2.4.2版的请求,则完全避免使用json.dumps

More complicated requests

编辑: 我无法以任何方式重现问题,json应该有效,这是在现代requests发送带有帖子的json的唯一正确方法。