gpt4 book ai didi

python - 在没有引号的情况下写入 CSV,escapcehar 错误

转载 作者:行者123 更新时间:2023-12-05 07:45:38 25 4
gpt4 key购买 nike

我有一个正在写入 CSV 的输出。我需要添加 csv.QUOTE_NONE 但我似乎无法在不产生错误的情况下找到正确的位置。

变量:

variable = ['20', '10', '30,30']

注意:我使用的一些变量将包含字符串,即 ['Test','Output', '100']

代码:

with open('file.csv', 'w') as csv_file:
writerc = csv.writer(csv_file)
for item in variable():
writerc.writerow(item)

使用上述代码时,它会在 CSV 中生成以下行。

20,10,"30,30"

要求的写法是:

20,30,30,30

如果我使用 quoting=csv.QUOTE_NONE 我得到一个 escapechar 错误 _csv.Error: need to escape, but no escapechar set - 如果我设置一个escapechar 但这会添加一个字符来代替引号。

有什么想法吗?

最佳答案

您可以尝试在写入数据之前进一步拆分数据。这将避免它需要自动使用引号字符。

它的工作原理是创建一个可能包含多个新拆分条目的新值列表,例如您的 '30,30' 将变为 ['30', '30']。接下来它使用 Python 的 chain函数将这些子列表展平为单个列表,然后可以将其写入输出 CSV 文件。

import itertools
import csv

data = [['20', '10', '30,30'], ['Test','Output', '100']]

with open('file.csv', 'wb') as f_output:
csv_output = csv.writer(f_output)

for line in data:
csv_output.writerow(list(itertools.chain.from_iterable(v.split(',') for v in line)))

这将为您提供以下 file.csv:

20,10,30,30
Test,Output,100

关于python - 在没有引号的情况下写入 CSV,escapcehar 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41496598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com