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

虽然很笨,但是也算解决了中文编码问题~~

你可能感兴趣的:(python,爬虫,CSV,python爬虫)