写入CSV
编码问题 !!!!
使用CSV模块时,写入中文在python中是默认Unicode编码,写入时CSV会出错,写不进去数据。
import csv
with open('review.csv', 'ab') as f:
fieldnames = ['Comment', 'User', 'Time']
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
try:
for data in datas:
writer.writerow(data) # 使用CSV模块,若是中文数据,则会转换为Unicode编码,导致无法写入CSV,故使用UnicodeCSV
f.close()
except Exception, e:
print Exception, ":", e
pass
寻找了很多解决办法,比如使用json.dumps()
转换,传入数据变为了json
,参数类型不一致,再转换回去又变成了Unicode
编码。。。。。(想哭~)
没办法了,找了个很蠢的办法,使用另外的第三方模块unicodecsv
import unicodecsv
with open('review.csv', 'ab') as f:
fieldnames = ['Comment', 'User', 'Time']
writer = unicodecsv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
try:
for data in datas:
writer.writerow(data) # 使用CSV模块,若是中文数据,则会转换为Unicode编码,导致无法写入CSV,故使用UnicodeCSV
f.close()
except Exception, e:
print Exception, ":", e
pass
虽然很笨,但是也算解决了中文编码问题~~