Python如何将嵌套结构字典转换为按索引分组的字典列表
实现方案
原生Python实现(无第三方依赖)
直接遍历公共索引组装即可,代码如下:
check = {'Test_Category': {0: 'right', 1: 'wrong'}, 'arg1': {0: 'test2', 1: 'test12'}, 'arg2': {0: 'test4', 1: 'test41'}, 'arg3': {0: 'test5', 1: 'test55'}, 'arg4': {0: 'test6', 1: 'test67'}} # 获取所有公共索引 index_list = next(iter(check.values())).keys() # 遍历组装结果 result = [] for idx in index_list: current = {} for outer_key, inner_dict in check.items(): # 如果你需要匹配输出里的Test_category(首字母C小写),取消下面两行注释即可 # if outer_key == "Test_Category": # outer_key = "Test_category" current[outer_key] = inner_dict[idx] result.append(current) print(result)
也可以用列表推导式简化写法:
index_list = next(iter(check.values())).keys() result = [{k: v[i] for k, v in check.items()} for i in index_list]
Pandas实现(适合数据处理场景)
该字典结构本身符合Pandas DataFrame的输入格式,一行代码即可转换:
import pandas as pd result = pd.DataFrame(check).to_dict("records") # 需要修改Test_Category键名的话可以加重命名逻辑: # df = pd.DataFrame(check).rename(columns={"Test_Category": "Test_category"}) # result = df.to_dict("records")
内容的提问来源于stack exchange,提问作者Vishal Aglawe
相关产品推荐
相关产品推荐

