python寫入文件到CSV

寫入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

雖然很笨,但是也算解決了中文編碼問題~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章