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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 018c08037d48649a0412063ff4eda26eaa81eff1546dbffa51fa5293276ff7fc |
|
MD5 | c18ffe8ded29a4f429224877b2b34252 |
|
BLAKE2b-256 | 6fa4691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270 |