I have a bit complicated json
response from a server, below is my json:
services = [{"Mobile": [{"name": "CompanyA", id: 0, address: "XYZ"}, {"name": CompanyB, id: 1, address: "QWE"}, {"name": CompanyC, id: 2, address: "TYU"}] }, {"Computer": [{"name": "CompanyD", id: 3, address: "PPP"}, {"name": CompanyD, id: 4, address: "UYU"}, {"name": CompanyE, id: 5, address: "NMB"}] }]
I need to construct new dictionary which only holds bellow data:
services = [{"Mobile": [{"name": "CompanyA"},{"name": "CompanyB"}, {"name": "CompanyC"}]}, {"Computer": [{"name": "CompanyD"},{"name": "CompanyD"}, {"name": "CompanyE"}] }]
in other words, delete id
and address
fields.
Advertisement
Answer
Iterating through each nested dictionary/list and deleting the unwanted keys,
for i in services: for j in i.values(): for k in j: del k[id] del k["address"] print(services) Output: [{'Mobile': [{'name': 'CompanyA'}, {'name': 'CompanyB'}, {'name': 'CompanyC'}]}, {'Computer': [{'name': 'CompanyD'}, {'name': 'CompanyD'}, {'name': 'CompanyE'}]}]