所以我试图在json.dumps()中使用OrderedDict,它开始工作良好。但是,当尝试直接在HTTP PUT请求的有效负载内部使用输出时,它周围有这些单引号,我认为这与在接收端解释json的方式搞砸了。
那么如何解决这个问题,并让它给出不带单引号的输出?
示例:
out = json.dumps(OrderedDict([("name", 1), ("value", 2)]))
...给出如下输出:
'{"name": 1, "value": 2}'
...当我想要它给我肉的时候,json,例如:
{"name": 1, "value": 2}
...以便我可以直接将其放入我的
r = requests.post(url, data = out)
...然后走上我快乐的路。
顺便说一句:关于字符串和字符串文字(无论是什么),我是否完全缺少某些基本知识?我的Python知识是自学的,我肯定会有一些差距。
编辑:
print(out)
...给出
{"name": 1, "value": 2}
这就是我想要的。
EDIT2:所选答案中提到的json = out
确实能帮到您!但是,由于我刚开始使用Python进行编码,所以我很想知道您是否遇到过一些方便我理解的文章/文档,以避免将来出现类似的问题。再次感谢大家!
答案 0 :(得分:1)
requests
将为您编码数据。您应该可以将OrderedDict
直接传递给post
:
out = OrderedDict([("name", 1), ("value", 2)])
r = requests.post(url, json=out)
我希望这会有所帮助。
编辑:我意识到有another answer可能会为您提供帮助,并且建议您在拨打json
时使用data
而不是post
。
文档:
http://docs.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests