[英]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.