我的json中有以下结构:
obj = {
'Name': 'David',
'Car': {
'Make': 'Ford',
'Year': 2008
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了点符号来引用对象值,例如:
Car.Make ==> 'Form'
Run Code Online (Sandbox Code Playgroud)
给定一个字符串,例如"Car.Make",我将如何以编程方式获取属性?在上面的例子中,它将是:
obj.get('Car').get('Make')
Run Code Online (Sandbox Code Playgroud)
但是对于一个深度嵌套的对象,我将如何提取给定点表示法的值"Attr1.Attr2.Attr3...Attrn"?
obj = {
'Name': 'David',
'Car': {
'Make': 'Ford',
'Year': 2008
}
}
s = "Car.Make"
x = obj
keys = s.split(".")
for key in keys:
x = x[key]
print(x)
Run Code Online (Sandbox Code Playgroud)
结果:
Ford
Run Code Online (Sandbox Code Playgroud)
或者,以单行形式:
from functools import reduce
print(reduce(lambda a,b: a[b], s.split("."), obj))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1492 次 |
| 最近记录: |