如何在Python中遍历并打印多层嵌套字典的所有数据?
遍历多层嵌套字典与列表的实现方法
你的数据结构混合了字典和列表的多层嵌套,要打印最内层的键值对,可以用两种方式实现:
方法一:通用递归法(适配任意嵌套深度)
递归函数可以自动处理字典和列表的嵌套,不管结构复杂度如何都能遍历到最底层的键值对:
def print_nested_data(item): # 如果当前元素是字典,遍历键值对 if isinstance(item, dict): for key, value in item.items(): # 值仍是嵌套结构则继续递归,否则直接打印 if isinstance(value, (dict, list)): print_nested_data(value) else: print(f"Key:{key} Value: {value}") # 如果当前元素是列表,遍历每个元素递归处理 elif isinstance(item, list): for elem in item: print_nested_data(elem) # 调用函数处理你的数据 data={ 'a':[{ 'aa':{'aax':5,'aay':6,'aaz':7}, 'ab':{'abx':8,'aby':9,'abz':10} }, { 'aaa':{'aaax':11,'aaay':12,'aaaz':13}, 'aab':{'aabx':14,'aaby':15,'aabz':16} }] } print_nested_data(data)
运行后输出:
Key:aax Value: 5 Key:aay Value: 6 Key:aaz Value: 7 Key:abx Value: 8 Key:aby Value: 9 Key:abz Value: 10 Key:aaax Value: 11 Key:aaay Value: 12 Key:aaaz Value: 13 Key:aabx Value: 14 Key:aaby Value: 15 Key:aabz Value: 16
方法二:针对性逐层遍历(适配当前固定结构)
如果你的数据结构固定不变,也可以直接逐层拆解遍历,代码更直观:
data={ 'a':[{ 'aa':{'aax':5,'aay':6,'aaz':7}, 'ab':{'abx':8,'aby':9,'abz':10} }, { 'aaa':{'aaax':11,'aaay':12,'aaaz':13}, 'aab':{'aabx':14,'aaby':15,'aabz':16} }] } # 先遍历data['a']中的每个字典 for list_item in data['a']: # 遍历每个字典里的内层字典 for inner_dict in list_item.values(): # 打印内层字典的键值对 for key, value in inner_dict.items(): print(f"Key:{key} Value: {value}")
这个写法和递归法输出结果一致,但只适用于当前的嵌套层级,若后续结构有变化需要修改代码。
内容的提问来源于stack exchange,提问作者Abdul Wahid
相关产品推荐
相关产品推荐

