带有 UTF-8 数据的 Python CSV DictReader

标签 python unicode csv

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/

相关文章:

python - Unicode解码错误: 'ascii' codec can't decode '\xc3\xa8' together with '\xe8'

mysql - 发送 csv 或填充数据库?

python - 在 python asyncio 中使用协程创建多个生产者和消费者的规范方法是什么?

Python 向 PATH 添加了很多东西。我该如何停止?

Python-excel : writing to multiple cells takes time

python - 如何使用 Pandas 中的 datetimeindex 属性选择 df 的观察值?

string - Unicode 字符串插值

javascript - 计算正则表达式中保留字符的出现次数 (Javascript)

javascript - CSV-Parser 似乎无法正确解析换行数据

java - 如何将属性类型更改为字符串(WEKA - CSV 到 ARFF)