Python 的 CSV 模块将标题写入第一行而不是列名

Python's CSV module writes header in first row instead of the column names

提问人:Mika 提问时间:7/28/2023 更新时间:7/28/2023 访问量:47

问:

我正在尝试将 dict 写入 csv 文件。我添加了特定的列名,但是,它们写在第一行,而不是标题中(试图通过 Libre Office 打开) 代码如下:

    def write_csv():
        with open(f'RTD {1}.csv', 'w') as csvfile:
            writer = csv.DictWriter(csvfile, delimiter=',', fieldnames=['one', 'two', 'three'])
            writer.writeheader() 
            writer.writerow({'one': 1, 'two': 2, 'three': 3})

输出如下:

enter image description here

蟒蛇 python-3.x csv

评论

0赞 kutschkem 7/28/2023
这看起来完全正确,标题将在 csv 文件的第一行......
2赞 LiterallyGutsFromBerserk 7/28/2023
您无法重命名 LibreOffic/Google 表格/Excel 工作表中的标题。它们用于帮助查找坐标并更改坐标,因此它们不是真正的标题,而是用于定位单元格的工具。
0赞 rasjani 7/28/2023
要么将标题写入第一行 - 就像现在所做的那样,要么根本没有标题。代码按应有的方式工作。由于CSV没有任何格式规则,因此一旦在excel或Libre Office中打开CSV,则必须自己添加格式。

答:

0赞 hamed danesh 7/28/2023 #1

你的代码工作得很好。CSV 文件将第一行视为标题。

我相信您的问题是像 LibreOffice 这样的电子表格没有以不同的格式显示标题并让您过滤和 .etc,这对于这些软件来说是完全正常的。因为它们为您提供了一个工具(大部分时间在“主页”选项卡中)来添加您认为合适的过滤器。

enter image description here