首页 > 解决方案 > 不正确的 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 示例。

标签: python

解决方案


由于您正在比较字符串,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

推荐阅读