删除空白Python WriterRows

2024-05-04 02:07:36 发布

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

我在字典里有以下结构:

 self._results = {'key1':'1,2,3','key2':'5,6,7'}

我使用csv writerows()将字典中的记录写入文件:

^{pr2}$

不幸的是,我得到了以下信息:

key1,1 ,2 ,3
key2,4 ,5 ,6

如果我删除escapechar或将其更改为“”,则得到:

Error: need to escape, but no escapechar set

有什么建议吗?在

我可以通过操作CSV文件来删除空白,但理想情况下,我希望在一个地方完成所有的文本操作。在


Tags: 文件csvself信息字典记录errorneed
1条回答
网友
1楼 · 发布于 2024-05-04 02:07:36

您禁用了引用。因此,如果没有转义符,它就不能输出逗号;它们会被误认为是CSV格式的字段分隔符。您需要提供某种转义符,或者允许引号(默认情况下允许用QUOTE_MINIMAL引号)。在

如果您的目标是使12和{}在结果中是独立的字段,那么您不应该将它们存储为dict中的前逗号分隔字符串,因为这是csv的工作,并且尝试为它完成它的工作就意味着要与csv作斗争,并冒着逻辑错误的风险,使数据无法正确往返。在

如果它们是一个单一的逻辑字段,允许引用。如果它们是多个字段,则将dict构建为lists的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())

相关问题 更多 >