我需要在python中创建一个函数来帮助我读取JSON文件,并将结果与从API接收到的JSON进行比较。问题是有些参数总是不同的,比如“Id”或“createdAt”,我希望在文件中使用Json路径,然后将结果与这些信息进行比较。有人能帮我吗?我在这里有一个简单的例子,但在某些情况下,我有100+ itens的JSON,使用Json路径表达式会容易得多。
我从API收到的内容:
{
"users": [
{
"createdAt": "2019-11-28 15:18:32+0000",
"name": "name1",
"id": 1,
"enabled": true,
"updatedAt": "2019-11-28 15:18:32+0000"
},
{
"createdAt": "2019-11-28 15:18:32+0000",
"name": "name2",
"id": 2,
"enabled": true,
"updatedAt": "2019-11-28 15:18:32+0000"
},
]
}
我想发送一个json文件来比较结果:
{
"users": [
{
"createdAt": "$..roles[0].createdAt",
"name": "name1",
"id": 1,
"enabled": true,
"updatedAt": "$..roles[0].updatedAt"
},
{
"createdAt": "$..roles[1].createdAt",
"name": "name2",
"id": 2,
"enabled": true,
"updatedAt": "$..roles[1].updatedAt"
},
]
}
发布于 2019-11-29 15:52:36
对不起@ScottHunter,我实际上已经有了json diff函数,但它不会将json路径读取为“变量”,所以我的函数什么也不做。
def compare(location1, location2):
json1 = getContent(location1)
json2 = getContent(location2)
diff1 = Diff(json1, json2, True).difference
diff2 = Diff(json2, json1, False).difference
diffs = []
for type, message in diff1:
newType = 'THIS ELEMENT HAS NOT THE SAME VALUE'
if type == PATH:
newType = 'REMOVED'
diffs.append({'type': newType, 'message': message})
for type, message in diff2:
diffs.append({'type': 'ADDED', 'message': message})
return diffs
https://stackoverflow.com/questions/59107761
复制相似问题