存储字典值的路径

dot*_*hen 2 python dictionary path

一个人怎么可以存储在一个路径的值dictdictS' 例如,我们可以轻松地将name值的路径存储在变量中name_field:

person = {}
person['name'] = 'Jeff Atwood'
person['address'] = {}
person['address']['street'] = 'Main Street'
person['address']['zip'] = '12345'
person['address']['city'] = 'Miami'

# Get name
name_field = 'name'
print( person[name_field] )
Run Code Online (Sandbox Code Playgroud)

如何city存储值的路径?

# Get city
city_field = ['address', 'city']
print( person[city_field] )  // Obviously won't work!
Run Code Online (Sandbox Code Playgroud)

Sim*_*ser 5

你可以做:

path = ('address', 'city')
lookup = person
for key in path:
    lookup = lookup[key]

print lookup
# gives: Miami
Run Code Online (Sandbox Code Playgroud)

KeyError如果路径的一部分不存在,这将引发.

如果path由一个值组成,它也可以工作,例如('name',).