OrderedDict的输出周围有单引号,我只希望内部没有单引号

时间:2018-11-30 11:45:50

标签: python json string python-3.x python-requests

所以我试图在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进行编码,所以我很想知道您是否遇到过一些方便我理解的文章/文档,以避免将来出现类似的问题。再次感谢大家!

1 个答案:

答案 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