You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

纯Python实现嵌套字典转置并按指定格式输出CSV

纯Python解决方案

直接用基础字典操作和字符串拼接就能实现,代码如下:

data_dict = {1: {'One': 110, 'Two': 210, 'three': 310},
             2: {'One': 120, 'Two': 220, 'three': 320},
             3: {'One': 130, 'Two': 230, 'three': 330}}

# 处理CSV表头行:第一列为空,后续是排序后的外层字典键
columns = sorted(data_dict.keys())
header = [''] + [str(col) for col in columns]
csv_lines = [','.join(header)]

# 处理行标题:统一首字母大写,按One/Two/Three的顺序排列
row_keys = [key.capitalize() for key in data_dict[1].keys()]
row_keys_sorted = sorted(row_keys, key=lambda x: ['One', 'Two', 'Three'].index(x))

# 遍历行标题,收集对应列的值并拼接成行
for row_key in row_keys_sorted:
    # 匹配原字典中的对应键(兼容原字典里的小写three)
    original_key = next(k for k in data_dict[1].keys() if k.capitalize() == row_key)
    values = [str(data_dict[col][original_key]) for col in columns]
    csv_line = ','.join([row_key] + values)
    csv_lines.append(csv_line)

# 输出最终CSV内容
print('\n'.join(csv_lines))

代码说明

  • 表头处理:提取外层字典的键并排序,加上开头的空字符串组成表头行
  • 行标题处理:将子字典的键统一为首字母大写格式,并按示例要求的固定顺序排列
  • 数据行生成:遍历每个行标题,匹配原字典中的对应键,依次取出各列的值并拼接成CSV行
  • 最终将所有行用换行符连接,即可得到目标格式的CSV内容

运行后输出:

'',1,2,3
One,110,120,130
Two,210,220,230
Three,310,320,330

内容的提问来源于stack exchange,提问作者Roman Toasov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:07:08