Find a value in JSON using Python

后端 未结 4 1134
我在风中等你
我在风中等你 2020-12-28 20:06

I’ve previously succeeded in parsing data from a JSON file, but now I’m facing a problem with the function I want to achieve. I have a list of names, identification numbers

4条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-28 20:32

    You have to iterate over the list of dictionaries and search for the one with the given id_number. Once you find it you can print the rest of its data and break, assuming id_number is unique.

    data = [
     {
       "id_number": "SA4784",
       "name": "Mark",
       "birthdate": None
     },
     {
       "id_number": "V410Z8",
       "name": "Vincent",
       "birthdate": "15/02/1989"
     },
     {
       "id_number": "CZ1094",
       "name": "Paul",
       "birthdate": "27/09/1994"
     }
    ]
    
    for i in data:
        if i['id_number'] == 'V410Z8':
            print(i['birthdate'])
            print(i['name'])
            break
    

    If you have control over the data structure, a more efficient way would be to use the id_number as a key (again, assuming id_number is unique):

    data =  { "SA4784" : {"name": "Mark", "birthdate": None},
              "V410Z8" : { "name": "Vincent", "birthdate": "15/02/1989"},
              "CZ1094" : {"name": "Paul", "birthdate": "27/09/1994"}
            }
    

    Then all you need to do is try to access it directly:

    try:
        print(data["V410Z8"]["name"])
    except KeyError:
        print("ID doesn't exist")
    >> "Vincent"
    

提交回复
热议问题