我有一个输出,我正在写一个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,这个错误会得到解决,但是这会在引号的位置添加一个字符。
有什么想法吗?
2条答案
按热度按时间xkftehaa1#
你可以尝试在写数据之前进一步拆分数据。这将避免自动使用引号字符。
它的工作原理是创建一个新的值列表,其中可能包含多个新的拆分条目,例如,您的
'30,30'
将变为['30', '30']
。接下来,它使用Python的chain
函数将这些子列表扁平化为一个列表,然后可以将其写入输出CSV文件。字符串
这将给你以下给予
file.csv
:型
vuv7lop32#
separator
或delimiter
。这就是为什么双引号被自动用于转义。代码
字符串
你可以看到在Full script中使用这两个分隔符的区别。另一件事是,我认为你的代码建议你使用
variable
作为column
的名称,但你的输出建议你使用variable
作为row
的名称(或index
)。无论如何,我的答案是基于假设你使用variable
作为column
的名称。希望它有帮助;)