我有 2 個 json 輸入
json 1:
[{
"Name": "John",
"Age": "23",
"Des": "SE"
},
{
"Name": "Rai",
"Age": "33",
"Des": "SSE"
},
{
"Name": "James",
"Age": "42",
"Des": "SE"
}
]
json 2:
[{
"Name": "John",
"Age": "23",
"Des": "SE",
"tech": [{
"Primary": ".net",
"secondary": "java",
"current": [{
"first": "Angular",
"second": "Spring"
}]
}]
},
{
"Name": "Ray",
"Age": "39",
"Des": "TE"
}
]
當 Name、age 和 Des 引數匹配時。如何檢查特定值,例如“Spring”是否存在于 json 2 中,如果存在,則所需的輸出存在于下方
期望的輸出:
[{
"Name": "John",
"Age": "23",
"Des": "SE",
"tech": [{
"Primary": ".net",
"secondary": "java",
"current": [{
"first": "Angular",
"second": "Spring"
}]
}]
}]
我對python比較陌生。請幫我解決這個問題。謝謝
uj5u.com熱心網友回復:
你可以試試這個代碼:
import json
a = """
[{
"Name": "John",
"Age": "23",
"Des": "SE"
},
{
"Name": "Rai",
"Age": "33",
"Des": "SSE"
},
{
"Name": "James",
"Age": "42",
"Des": "SE"
}
]
"""
b = """
[{
"Name": "John",
"Age": "23",
"Des": "SE",
"tech": [{
"Primary": ".net",
"secondary": "java",
"current": [{
"first": "Angular",
"second": "Spring"
}]
}]
},
{
"Name": "Ray",
"Age": "39",
"Des": "TE"
}
]
"""
# Covert to list dict python
json_dict1 = json.loads(a)
json_dict2 = json.loads(b)
def has_value(obj, val):
if isinstance(obj, dict):
values = obj.values()
elif isinstance(obj, list):
values = obj
if val in values:
return True
for v in values:
if isinstance(v, (dict, list)) and has_value(v, val):
return True
return False
elems = set((d['Name'], d['Age'], d['Des']) for d in json_dict1)
for e in json_dict2:
if (e['Name'], e['Age'], e['Des']) in elems and has_value(e, "Spring"):
print(e)
檢查參考Spring:如何知道嵌套字典中的串列中是否存在某個值
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/403357.html
標籤:
上一篇:將json物件傳播到可迭代物件中
下一篇:拆分json資料python
