跳转到主要内容

Python 2的stdlib csv模块很好,但它不支持Unicode。此模块是一个即插即用的替代品,确实支持。

项目描述

unicodecsv是Python 2.7的csv模块的替代品,它支持Unicode字符串而无需任何麻烦。支持的版本有python 2.7、3.3、3.4、3.5和pypy 2.4.0。

更详细地

Python 2的csv模块不容易处理Unicode字符串,导致可怕的“‘ascii’ codec can’t encode characters in position …”异常。

您可以在调用write(或读取后)之前对一切进行编码来解决这个问题,但为什么不给序列化器添加支持呢?

>>> import unicodecsv as csv
>>> from io import BytesIO
>>> f = BytesIO()
>>> w = csv.writer(f, encoding='utf-8')
>>> _ = w.writerow((u'é', u'ñ'))
>>> _ = f.seek(0)
>>> r = csv.reader(f, encoding='utf-8')
>>> next(r) == [u'é', u'ñ']
True

请注意,unicodecsv期望一个字节流,而不是Unicode - 因此无需使用codecs.open或类似的包装器。普通的open(…, ‘rb’)即可。

(0.14.0版本已取消对python 2.6的支持,但0.14.1版本又添加了支持。有关错误的破坏性更改,请参阅c0b7655248c4249。)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

unicodecsv-0.14.1.tar.gz (10.3 kB 查看哈希值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面