Reading from Python dict if key might not be present

后端 未结 7 469
清酒与你
清酒与你 2021-01-30 17:10

I am very new to Python and parsing data.

I can pull an external JSON feed into a Python dictionary and iterate over the dictionary.

for r in results:
         


        
7条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-01-30 17:42

    The preferred way, when applicable:

    for r in results:
         print r.get('key_name')
    

    this will simply print None if key_name is not a key in the dictionary. You can also have a different default value, just pass it as the second argument:

    for r in results:
         print r.get('key_name', 'Missing: key_name')
    

    If you want to do something different than using a default value (say, skip the printing completely when the key is absent), then you need a bit more structure, i.e., either:

    for r in results:
        if 'key_name' in r:
            print r['key_name']
    

    or

    for r in results:
        try: print r['key_name']
        except KeyError: pass
    

    the second one can be faster (if it's reasonably rare than a key is missing), but the first one appears to be more natural for many people.

提交回复
热议问题