I'm trying to filter a nested JSON file. I want to create a new json file with fitering "classes" and "id". The source JSON file :
[
{"data": {"id": "ed", "label": "Executive Director (Harriet)"},
"classes": "purple"
},
{"data": {"id": "vp1", "label": "Vice President (Sarah)"},
"classes": "square"
},
{"data": {"id": "vp2", "label": "Vice President (Charlotte)"},
"classes": "square"
},
{"data": {"id": "po1", "label": "Program Officer (Sojourner)"},
"classes": "green diamond"
},
{"data": {"id": "po2", "label": "Program Officer (Sojourner)"},
"classes": "green diamond"
},
{"data": {"id": "pa", "label": "Program Associate (Ellen)"},
"classes": "myimage"
}
]
My goal is filter 'classes': 'green diamond' having 'id': 'po1' . Then remove all classes with 'green diamond', except 'id': 'po1'.
The result:
[
{"data": {"id": "ed", "label": "Executive Director (Harriet)"},
"classes": "purple"
},
{"data": {"id": "vp1", "label": "Vice President (Sarah)"},
"classes": "square"
},
{"data": {"id": "vp2", "label": "Vice President (Charlotte)"},
"classes": "square"
},
{"data": {"id": "po1", "label": "Program Officer (Sojourner)"},
"classes": "green diamond"
},
{"data": {"id": "pa", "label": "Program Associate (Ellen)"},
"classes": "myimage"
}]
I tried to used this code to fetch the data but it raised an error:
import json
# Loding the data
with open("D:/bb.json", 'r') as file:
content = file.read()
# Converting json_data to python dictionary format
json_data = json.loads(content)
quantite = -1 # -1 for not found case
for data in json_data[0]:
# Checking for specific pair
if data['classes'] == 'square' and data['id'] == 'vp2':
print(data)
break
How can i filter such a json file?