python:有一个众所周知的函数来规范化数据的JSON表示吗?

时间:2016-05-23 17:29:48

标签: python json

假设您有一对变量:request_dataresponse_data。 它们包含JSON / JSON数组数据,您需要检查这些数据是否相同(即,dicts / lists不相同,因此它们不相等,但它们包含相同的数据)。 / p>

类似于python JSON的数据比较有一个障碍:数据的Dicts可能相同,但由于它们无序,它们可能有不同的表示,如果我们比较它们的{{ 1}}:

json.dumps

某些库中是否存在一个众所周知的函数来规范化这些数据的表示?

它应该是递归的并且考虑嵌套的dicts和列表。

2 个答案:

答案 0 :(得分:5)

要比较这些对象,您需要比较加载的词组。

assert json.loads(s1) == json.loads(s2)

为确保序列化彼此一致,您可以使用keyword argument sort_keys

  

如果sort_keys为True(默认值:False),则字典的输出将按键排序。

assert json.dumps(d1, sort_keys=True) == json.dumps(d2, sort_keys=True)

如果d1 == d2,则上述等式适用于任何可序列化数据(包括嵌套结构)。

答案 1 :(得分:0)

使用json.loads将JSON转换为Python对象,然后进行比较。