寫入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
雖然很笨,但是也算解決了中文編碼問題~~