【问题标题】:How to fix encoding issue when writing to csv file写入 csv 文件时如何解决编码问题
【发布时间】:2016-09-12 04:32:03
【问题描述】:

我在写入 csv 文件时遇到了一些编码问题

我该如何解决它

import csv


a = [s.encode('utf-8') for s in a]
f3 = open('test.csv', 'at')
writer = csv.writer(f3,delimiter = ',', lineterminator='\n',quoting=csv.QUOTE_ALL)
writer.writerow(a)

错误

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    a = [s.encode('ascii') for s in a]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1: ordinal not in range(128)

如何让程序工作并写入csv文件?

【问题讨论】:

标签: python csv encoding


【解决方案1】:

我运行了您的代码,它可以正常工作而不会引发任何错误。唯一的问题是您的 csv 文件包含字节编码值。前面带有 b' 的值。这是你想要完成的吗?我正在使用 python 3.5.2 。

如果您不想要字节编码数据,只需删除

a = [s.encode('utf-8') for s in a]

它应该可以工作。这是我在机器上运行时将数据输出到 csv 中的内容。

http://puu.sh/r8ksr/d778437622.png

【讨论】:

    【解决方案2】:
    # encoding=utf8  
    import sys  
    
    reload(sys)  
    sys.setdefaultencoding('utf8')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      相关资源
      最近更新 更多