给出一个包含n个词典的词典,其中包含n个词典等。
foo = dict({"foo" : {"bar": {"baz": "some value"}}}
假设baz
可能位于foo
中的任何位置,但它只会出现一次,是否可以在没有迭代的情况下查找键“baz”的值?我在想xpath-ish。即".//baz"
if "baz" in foo:
bazVal = dict[path][to][baz]
答案 0 :(得分:1)
如果没有迭代/递归,我认为你无法做到。
>>> def search(d, baz):
... if baz in d:
... return d[baz]
... for value in d.values():
... if isinstance(value, dict):
... ret = search(value, baz)
... if ret:
... return ret
...
>>>
>>> foo = {"foo" : {"bar": {"baz": "some value"}}}
>>> search(foo, 'baz')
'some value'
>>> search(foo, 'spam')
>>>
答案 1 :(得分:0)
使用标准字典,而不是迭代?否。
答案 2 :(得分:0)
没有迭代,不确定。使用,您可以使用以下内容:
d = dict({"foo" : {"bar": {"baz": "some value"}}})
def myprint(d):
for i in d.iteritems():
if isinstance(i, dict):
myprint(i)
else:
print i
myprint(d)