我有以下嵌套的dict。如何在列表中提取键'_type'
的所有值?我试图:
for e in d.values():
print (e['_type'])
但是,我得到了TypeError: string indices must be integers
。在这种情况下,哪种方法应该是提取所有可能占用_type
的可能值的正确方法?
答案 0 :(得分:3)
将键_type
的所有值提取到列表中(使用递归):
def extract_keys(d):
if isinstance(d, dict):
for k, v in d.items():
if k=='_type':
yield v
else:
yield from extract_keys(v)
elif isinstance(d, list):
for v in d:
yield from extract_keys(v)
out = list(extract_keys(d)) # variable `d` is your dict from your question
print(out)
打印:
['FunctionDef', 'arguments', 'arg', 'Expr', 'Str', 'Assign', 'Name', 'Store', 'Num', 'For', 'Assign', 'Name', 'Store', 'BinOp', 'BinOp', 'BinOp', 'Name', 'Load', 'BitXor', 'Call', 'Name', 'Load', 'Name', 'Load', 'Add', 'BinOp', 'BinOp', 'Name', 'Load', 'RShift', 'Num', 'Add', 'BinOp', 'Name', 'Load', 'LShift', 'Num', 'BitAnd', 'Num', 'Name', 'Load', 'Name', 'Store', 'Return', 'Name', 'Load']
答案 1 :(得分:1)
您可以使用键从嵌套字典中找到任何数据:
{{1}}
答案 2 :(得分:-2)
假设您的骰子是这样的:
dic = {'hi':[1,2,3], 'hello': [4,5,6]}
您想从[1,2,3]中获得1、2、3,请执行以下操作:
for e in dic['hi']:
print(e)