python - 不正确的 python 字典到 JSON 的转换
问题描述
我正在尝试将 python 字典转换为target
下面的 JSON 对象。我想我会使用json.dumps()
(根据这个线程),但结果还是不一样。其中target
有一些非常规的间距,但我不允许更改或编辑它们。
知道如何解决这个问题吗?
import json
dict= {"token":{"name":"John Doe","code":"123456789"}}
target = '{ "token":{ "name":"John Doe", "code":"123456789" } }'
print(json.dumps(dict))
print(json.loads(json.dumps(dict)))
print(target)
>>>{"token": {"name": "John Doe", "code": "123456789"}}
>>>{'token': {'name': 'John Doe', 'code': '123456789'}}
>>>{ "token":{ "name":"John Doe", "code":"123456789" } }
对于其他上下文,我正在尝试准备通过Bambora 的支付 API传递的参数。在此处查看与此相关的 cURL 示例。
解决方案
由于您正在比较字符串,False
因此即使两个字符串之间有一个空格不同,您也会得到一个结果。即使这两个结构在结构和数据方面实际上是相同的,也会发生这种情况。您真正想要做的是找到一种方法来消除等式中的非实质性格式问题。
以下是修复代码以消除间距差异和其他非实质性差异问题的方法:
import json
dict= {"token":{"name":"John Doe","code":"123456789"}}
target = json.dumps(json.loads('{ "token":{ "name":"John Doe", "code":"123456789" } }'))
print(target == json.dumps(dict))
结果:
True
推荐阅读
- java - 如果数组中的每个元素都相等,则打印一个元素,而如果所有元素不相等,则打印最大的元素
- javascript - 谷歌脚本删除行
- c# - C# 写入 8 位数据包,分成 3 个整数
- angular - 如何使用带条件的 ConcatMap 进行多个 API 调用
- python - python pyautogui.dragRel 不生效(拖动窗口)
- c++ - std::exchange 与 VC++ 和 gcc 的工作方式不同
- python - 使用 Folium 地图的 CSS 分层
- java - 如何将变量约束添加到视图
- queue - 如何在 MQTT 中排队消息?
- google-analytics - 谷歌分析 - 双重退款不起作用