如何将嵌套字典按指定键转换为列表(以'20'为标识)
解决嵌套字典转指定标识列表的问题
没问题,我来帮你搞定这个转换需求。你的目标是从嵌套字典里提取所有以'20'为键的对应值,再把'20'本身作为第一个元素组成列表对吧?
这里有个简洁的Python实现方案,完全符合你的需求:
首先定义你的原始数据字典:
data = { 'Name': {'20': 'Paul Merrill', '21': 'Brynne S. Barr'}, 'Phone': {'20': '1-313-739-3854', '21': '939-4818'}, 'Address': {'20': '916-8087 Vehicula Rd.', '21': '878-2231 Suspendisse Rd.'}, 'City': {'20': 'Le Mans', '21': 'Wilhelmshaven'} }
然后执行转换逻辑:
target_id = '20' # 初始化列表,先把标识'20'放进去 result_list = [target_id] # 遍历每个字段对应的内层字典,提取target_id对应的值 for inner_dict in data.values(): result_list.append(inner_dict[target_id]) print(result_list)
运行这段代码后,你会得到期望的输出:
['20', 'Paul Merrill', '1-313-739-3854', '916-8087 Vehicula Rd.', 'Le Mans']
逻辑解释
- 第一步先创建结果列表,把目标标识'20'作为第一个元素;
- 然后通过
data.values()遍历外层字典的所有值(也就是每个字段的内层字典); - 对每个内层字典,直接用
inner_dict[target_id]取出对应的值,追加到结果列表里。
额外优化(可选)
如果担心某些内层字典可能没有'20'这个键导致报错,可以改用get方法来避免KeyError,同时设置默认值(比如空字符串):
result_list.append(inner_dict.get(target_id, ''))
这样即使某个字段没有'20'的条目,代码也能正常运行,只会在对应位置填充空字符串。
内容的提问来源于stack exchange,提问作者shadowrain
相关产品推荐
相关产品推荐

