Home > OS >  Filter one dictionary out of list of dictionaries and extract values of certain keys
Filter one dictionary out of list of dictionaries and extract values of certain keys

Time:06-26

Objective: To filter out of list of dictionaries and extract specific values in that dictionary using python 3.x

Code:

output = data.decode("utf-8")
input = json.loads(output)
for itm in input['items']:
    print(itm)

The above code output:

{'name': 'ufg', 'id': '0126ffc8-a1b1-423e-b7fe-56d4e93a80d6', 'created_at': '2022-06-16T04:37:32.958Z'}
{'name': 'xyz', 'id': '194ac74b-54ac-45c6-b4d3-c3ae3ebc1d27', 'created_at': '2022-06-26T10:32:50.307Z'}
{'name': 'defg', 'id': '3744bdaa-4e74-46f6-bccb-1dc2eca2d2c1', 'created_at': '2022-06-26T10:55:21.273Z'}
{'name': 'abcd', 'id': '41541893-f916-426b-b135-c7500759b0b3', 'created_at': '2022-06-24T08:39:39.806Z'}

Now Need to filter only as output for example, I want only dictionary with 'name' as 'abcd'

expected filtered output:

{'name': 'abcd', 'id': '41541893-f916-426b-b135-c7500759b0b3', 'created_at': '2022-06-24T08:39:39.806Z'}

Now, I need to extract only 'name' and 'id' for this 'abcd' into python variable to use it next part of program

Please suggest.

CodePudding user response:

For your situation probably converting into dictionary then filtering would be best.

for itm in input['items']:
    itm = dict(itm)
    if(itm["name"] == "abcd"):
        print(itm["name"],itm["id"])

however, if itm = dict(itm) wouldn't work for your situation, you can use json.loads(itm) then itm = dict(itm).

  • Related