对于我的项目,我需要解析xml文件。为此,我使用lxml。我需要解析的文件有一个cp1251编码,当然,为了使用lxml解析它,我需要将它解码成utf-8,我不知道怎么做。我试图搜索一些关于这个的东西,但所有的解决方案都是针对Python 2.7或不起作用的。如果你想写一些像这样的东西
inp = open("business.xml", "r", encoding='cp1251').decode('utf-8')或
inp.decode('utf-8')它会变得
builtins.AttributeError: '_io.TextIOWrapper' object has no attribute 'decode'我有Python 3.2。任何帮助都很好,谢谢你。
发布于 2013-04-21 20:08:04
open()会为您解码该文件。您已经在接收Unicode数据。
对于lxml,您需要以二进制模式打开文件,并让XML解析器处理编码。请不要自己这么做。
with open("business.xml", "rb") as inp:
tree = etree.parse(inp)XML文件包含一个标头,指示它们使用什么编码,解析器会根据这一点进行调整。如果头部丢失,解析器可以安全地假定为UTF-8。
https://stackoverflow.com/questions/16130924
复制相似问题