[英]Remove white space Python writerows
我在字典中具有以下结构:
self._results = {'key1':'1,2,3','key2':'5,6,7'}
我正在使用csv writerows()
将字典中的记录写入文件:
filewriter = csv.writer(
csvfile,
quoting=csv.QUOTE_NONE,
delimiter=',',
quotechar='',
escapechar=' ')
filewriter.writerows(self._results.items())
不幸的是,我得到以下信息:
key1,1 ,2 ,3
key2,4 ,5 ,6
如果我删除escapechar
或将其更改为''我得到:
Error: need to escape, but no escapechar set
有什么建议么?
之后可以通过处理CSV文件来删除空格,但理想情况下,我希望将所有文本处理都放在一个位置。
您禁用了报价。 因此,如果没有转义字符,它将无法输出逗号。 他们会误认为CSV格式的字段分隔符。 您需要提供某种转义符,或者允许使用引号(默认情况下允许使用QUOTE_MINIMAL
进行引号)。
如果你的目标是有1
, 2
和3
是在结果不同的领域,你不应该将其存储作为预逗号的分隔字符串dict
,因为这是csv
的工作,并试图完成其工作的这仅意味着与csv
对抗,并冒使无法正确往返数据的逻辑错误的风险。
如果它们是单个逻辑字段,则允许引用。 如果它们不止一个字段,则将dict
构建为list
的dict
(如果零散构建值,则defaultdict(list)
很有用),然后输出原始序列,而不是部分预格式化的文本:
# Define values as lists, not strings
self._results = {'key1':[1,2,3],'key2':[5,6,7]}
# Wrap k in list and concatenate v to make four item list
filewriter.writerows([k] + v for k, v in self._results.items())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.