为什么csv文件中的某些行的格式无效?

2024-04-26 00:17:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在从一个API获取数据,我想将这些数据存储为csv。在

但是,有些行总是无效的,这意味着我不能通过Excel的文本列功能来拆分它们。在

我创建csv文件如下:

with open(directory_path + '/' + file_name + '-data.csv', 'a', newline='') as file:
    # Setup a writer
    csvwriter = csv.writer(file, delimiter='|')

    # Write headline row
    if not headline_exists:
        csvwriter.writerow(['Title', 'Text', 'Tip'])

    # Build the data row
    record = data['title'] + '|' + data['text'] + '|' + data['tip']

    csvwriter.writerow([record])

invalid csv

如果在Excel中打开csv文件,也会立即看到该行无效。有效的取默认高度和全宽,无效的取大高小宽。在

有人知道这个问题的原因吗?在


Tags: 文件csv数据文本功能apidatarecord
2条回答

行不是无效的,但是您要做的是。在

所以首先:你用管道作为分隔符。在某些情况下,这还不错,但考虑到您希望立即将其加载到excel中,在"excel" dialect中导出数据似乎更明智:

csvwriter = csv.writer(file, dialect='excel')

其次,请看以下几行:

^{pr2}$

这样你就基本上告诉csv编写器你想要一个单独的列,里面有管道。如果您使用csv编写器,则不能单独连接分隔符,这将使使用编写器无效。所以应该这样做:

record = [data['title'], data['text'], data['tip']]
csvwriter.writerow(record)

希望有帮助。在

我终于发现我不得不去掉文本和提示,因为它们有时包含会破坏格式的空白。在

此外,我还按照建议使用excel dialect,因为我认为这将使以后处理数据更容易。在

相关问题 更多 >