AFAIK,默认情况下 Python (v2.6) csv 模块无法处理 unicode 数据,对吗?在 Python 文档中有一个 example关于如何从 UTF-8 编码文件中读取。但此示例仅将 CSV 行作为列表返回。
我想按名称访问行列,因为它是由 csv.DictReader
完成的,但使用 UTF-8 编码的 CSV 输入文件。
谁能告诉我如何以有效的方式做到这一点?我将不得不处理 100 兆字节大小的 CSV 文件。
最佳答案
我自己想出了一个答案:
def UnicodeDictReader(utf8_data, **kwargs):
csv_reader = csv.DictReader(utf8_data, **kwargs)
for row in csv_reader:
yield {unicode(key, 'utf-8'):unicode(value, 'utf-8') for key, value in row.iteritems()}
注意:此内容已更新,因此根据评论中的建议对 key 进行解码
关于带有 UTF-8 数据的 Python CSV DictReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5004687/