我有一个如下所示的 json
result_json = {
"status":"Gov info",
"user_input":[
{
"rule":"Location"
},
{
"des": "This is for location1",
"value": 1
},
{
"des": "This is for location2",
"value": 2
},
{
"rule":"District"
},
{
"des": "This is for district1",
"value": 1
},
{
"des": "This is for district2",
"value": 2
},
{
"des": "This is for district3",
"value": 3
},
{
"des": "This is for district4",
"value": 4
},
{
"rule":"Country"
},
{
"des": "This is for country1",
"value": 1
},
{
"rule":"Continent"
},
{
"des": "This is for continent1",
"value": 1
},
{
"des": "This is for continent2",
"value": 2
},
],
"source":"Gov",
"id":"5ass1"
}
我也有这样的清单
lookup = [u'Location', u'District', u'Country', u'Continent']
现在我想要做的是查看列表的每个值,检查 json 是否具有相同的值(该值是针对rule键存储的)并在它之后立即获取子 json 直到我点击下一个rule. 例如
列表查找中的第一个值是Location。现在我遍历user_input键的值,检查子键rule并找出值Location匹配,然后立即存储后续字典,直到我点击下一个键rule。所以对于查找值Location,在检查 json 并收集后续字典后,这就是我将如何存储
filtered_output = {
"Location":[
{
"des":"This is for location1",
"value":1
},
{
"des":"This is for location2",
"value":2
}
]
}
现在我寻找下一个查找值,即District,将存储的 json 的后续部分是
filtered_output = {
"Location":[
{
"des":"This is for location1",
"value":1
},
{
"des":"This is for location2",
"value":2
}
],
"District":[
{
"des":"This is for district1",
"value":1
},
我尝试做类似下面的事情
filtered_output = {}
for i in lookout:
temp_json = []
for j in result_json["user_input"]:
if j.get("rule") == i:
temp_json.append(j)
在这里,它只存储包含键的字典,rule但在遇到下一个rule键之前不会进一步继续。我不知道如何使这项工作。任何帮助将不胜感激。
沧海一幻觉
料青山看我应如是
随时随地看视频慕课网APP
相关分类