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

如何将指定嵌套字典按要求格式写入CSV文件

没问题,我来帮你搞定这个嵌套字典转CSV的需求。按照你要的格式,每个子键(a/b/c/d)占一行,对应三个父分类下的值,我们可以用Python的csv模块来实现,步骤和代码如下:

实现思路

  1. 确定CSV结构:表头包含子键名称+三个父分类的键(lt60、ge60le90、gt90),这样表格逻辑更清晰;
  2. 处理子键一致性:注意你的字典里ge60le90下的键是C(大写),其他父类是c(小写),我会默认统一转成小写处理(如果想保留原样可以调整代码);
  3. 遍历提取值:对每个子键,依次从三个父字典中取出对应值,不存在则默认补0;
  4. 写入文件:用Python内置的csv模块规范写入CSV,避免手动拼接字符串的格式问题。

代码示例

import csv

# 你的原始嵌套字典
count = {
    'lt60': {'a': 0, 'b': 0, 'c': 0, 'd': 0},
    'ge60le90': {'a': 4, 'b': 0, 'C': 0, 'd': 0},
    'gt90': {'a': 0, 'b': 1, 'c': 2, 'd': 1}
}

# 提取所有父分类的键
parent_categories = list(count.keys())
# 收集所有子键并统一为小写(解决大小写不一致问题)
child_keys = set()
for parent_dict in count.values():
    child_keys.update(k.lower() for k in parent_dict.keys())
# 排序让输出更整齐
child_keys = sorted(child_keys)

# 写入CSV文件
with open('result.csv', 'w', newline='', encoding='utf-8') as csv_file:
    writer = csv.writer(csv_file)
    # 写入表头行
    writer.writerow(['子键'] + parent_categories)
    # 遍历每个子键,生成对应行数据
    for key in child_keys:
        row_data = [key]
        for category in parent_categories:
            # 优先匹配小写键,找不到再试大写,都没有就用0
            value = count[category].get(key, count[category].get(key.upper(), 0))
            row_data.append(value)
        writer.writerow(row_data)

输出效果

运行代码后生成的result.csv内容如下:

子键,lt60,ge60le90,gt90
a,0,4,0
b,0,0,1
c,0,0,2
d,0,0,1

如果不想统一子键大小写(比如保留C作为单独行),可以修改子键收集的代码:

# 不统一大小写的版本,保留原始键
child_keys = set()
for parent_dict in count.values():
    child_keys.update(parent_dict.keys())
child_keys = sorted(child_keys)

这样输出会包含C和c两行,对应各自的取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:37:22