【发布时间】:2015-01-02 12:26:43
【问题描述】:
我正在将一大段文本解析成字典,最终目标是创建一个 CSV 文件,其中键作为列标题。
csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)
问题出现是因为任何第 n 行的 dict 都可以包含一个新的、以前从未使用过的键。然后,我希望 CSV 也包含此新密钥的列。简而言之,我的所有字段都是事先不知道的,所以我无法在一开始就编译出完整的fieldnames。
有没有推荐的方法让csv.DictWriter 不忽略缺少的字段,而是将它们添加到fieldnames?此时仅更改 fieldnames 会使前面的行的字段数错误地减少。
【问题讨论】:
-
您能否提供一个示例字典结构。
-
问题是在代码执行之前字典键是未知的,但我希望能够从字典列表中写入 CSV。我正在通过编译整个 dicts 列表然后遍历键来识别我可以用于字段名的唯一键来解决这个问题。然而,随着数据集的增长,我希望能够在我知道所有 dicts 之前编写一个 CSV。
-
Pranab 请在下面查看我的答案。
标签: python python-2.7 csv dictionary export-to-csv