stackoverflow上有一些线程,但我找不到解决整个问题的有效方法。
我从urllib read函数收集了大量文本数据,并将它们存储在pickle文件中。
现在我想把这些数据写入一个文件。 在写作的时候,我犯了一些类似的错误-
'ascii' codec can't encode character u'\u2019' in position 16: ordinal not in range(128)
很多数据正在丢失。
我认为urllib读取的数据是字节数据
我试过了
1. text=text.decode('ascii','ignore')
2. s=filter(lambda x: x in string.printable, s)
3. text=u''+text
text=text.decode().encode('utf-8')
但我最终还是犯了类似的错误。 有人能指出正确的解决办法吗。 也会编解码器剥离工作。 如果冲突字节不是作为字符串写入文件,则我没有问题,因此可以接受丢失。
您的数据是unicode数据。要将其写入文件,请使用
.encode()
:但这将删除任何不是ASCII的内容。也许你想编码成更合适的编码,比如UTF-8?
您可能需要阅读Python和Unicode:
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)作者Joel Spolsky
Python Unicode HOWTO
Pragmatic Unicode作者:Ned Batchelder
你可以通过
Django
模块的smart_str
来完成。试试这个:您可以通过以管理员权限启动命令shell来安装Django,并运行以下命令:
相关问题 更多 >
编程相关推荐