簡體   English   中英

刪除空白Python writerows

[英]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進行引號)。

如果你的目標是有123是在結果不同的領域,你不應該將其存儲作為預逗號的分隔字符串dict ,因為這是csv的工作,並試圖完成其工作的這僅意味着與csv對抗,並冒使無法正確往返數據的邏輯錯誤的風險。

如果它們是單個邏輯字段,則允許引用。 如果它們不止一個字段,則將dict構建為listdict (如果零散構建值,則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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM