python - OrderedDict 的输出周围有单引号,我只想要没有单引号的内部
问题描述
所以我试图在 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 进行编码,我很想知道您是否遇到过任何可能对我有用的文章/文档,以避免将来出现类似问题。再次感谢大家!
解决方案
requests
将为您编码数据。您应该能够OrderedDict
直接将其传递给post
:
out = OrderedDict([("name", 1), ("value", 2)])
r = requests.post(url, json=out)
我希望这有帮助。
编辑:我意识到还有另一个答案可能对您有所帮助,它建议在拨打电话时使用json
而不是。data
post
文档:
http://docs.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests
推荐阅读
- java - 是否有工具可以将使用 io.swagger 1.5.x 注释的 Java 代码迁移到 io.swagger 2.x 注释?
- google-sheets - BY 列未引入谷歌表格查询
- r - R bootstrapping - 't' 返回 NA 值
- flash - Adobe Flash 视频播放器
- javascript - 当状态改变时,正确的组件不会在 React 中显示
- react-native - 我使用 react-native 曲目播放器,我无法播放多个曲目
- flutter - 我们可以更改仅在颤动中按下的标题的颜色吗
- html - px中的fontSize实际定义了什么具体值
- python - Matplotlib 轴刻度重叠图
- php - Laravel Excel Maatwebsite/Excel 显示 +12