为了账号安全,请及时绑定邮箱和手机立即绑定

用美丽的汤处理 xml 的编码错误

用美丽的汤处理 xml 的编码错误

慕神8447489 2021-11-16 16:28:50
我的 xml 文件是这样编码的:<?xml version="1.0" encoding="utf-8"?>我正在尝试使用美丽的汤解析这个文件。from bs4 import BeautifulSoupfd = open("xmlsample.xml")  soup = BeautifulSoup(fd,'lxml-xml',from_encoding='utf-8')但这导致Traceback (most recent call last):  File "C:\Users\gregg_000\Desktop\Python Experiments\NRE_XMLtoCSV\NRE_XMLtoCSV\bs1.py", line 4, in <module>    soup = BeautifulSoup(fd,'lxml-xml', from_encoding='utf-8')  File "C:\Users\gregg_000\AppData\Local\Programs\Python\Python36\lib\site- 包\bs4__init__.py”,第 245 行,在init markup = markup.read() 文件中“C:\Users\gregg_000\AppData\Local\Programs\Python\Python36\lib\encodings\cp125 2.py”,第 23 行,在解码返回 codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError :“charmap”编解码器无法解码位置 5343910 中的字节 0x9d:字符映射到未定义我的感觉是 Python 想要使用默认的 cp1252 字符集。如何强制使用 utf-8 而不必求助于命令行?(我处于无法轻松强制对 python 设置进行全局更改的设置中)。
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您还应该将编码添加到您的open()调用中(如文档所示,这是一个可接受的参数)。默认情况下,在 Windows 中(至少在我的安装中),如您所料,默认值为 cp1252。


from bs4 import BeautifulSoup


fd = open("xmlsample.xml", encoding='utf-8')

soup = BeautifulSoup(fd,'lxml-xml',from_encoding='utf-8')


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信