【发布时间】:2018-11-30 11:45:49
【问题描述】:
所以我尝试在 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 进行编码,我很想知道您是否遇到过任何可能对我有用的文章/文档,以避免将来出现类似问题。再次感谢大家!
【问题讨论】:
-
是的!我的意思是反应不好,其他一切都已经检查过了。所以它必须是这个。
-
您显然缺少的是 json.dump() 返回一个字符串。
'{"name": 1, "value": 2}'是检查时字符串的显示方式 -'只是不属于字符串的分隔符 - 错误必须在其他地方。 -
...这就是 JSON 的全部意义——您以一种严格的格式将数据作为字符串传输,以便在另一端对其进行解析...
-
值得注意的是:JSON 交换格式不提供任何键/值对的排序保证。如果键的顺序很重要,您将需要使用对象列表而不是单个对象来序列化为 JSON。
标签: python json string python-3.x python-requests