gpt4 book ai didi

python - 用 BeautifulSoup 用 xml 处理编码错误

转载 作者:数据小太阳 更新时间:2023-10-29 01:52:14 41 4
gpt4 key购买 nike

我的 xml 文件是这样编码的:

<?xml version="1.0" encoding="utf-8"?>

我正在尝试使用 beautiful soup 解析这个文件。

from bs4 import BeautifulSoup

fd = 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-

packages\bs4__init__.py”,第 245 行,在 init 中 标记 = markup.read() 文件

"C:\Users\gregg_000\AppData\Local\Programs\Python\Python36\lib\encodings\cp125 2.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 5343910: character maps to undefined

我的感觉是 Python 想要使用默认的 cp1252 字符集。如何在不求助于命令行的情况下强制使用 utf-8? (我处于无法轻易强制对 python 设置进行全局更改的设置中)。

最佳答案

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

from bs4 import BeautifulSoup

fd = open("xmlsample.xml", encoding='utf-8')
soup = BeautifulSoup(fd,'lxml-xml',from_encoding='utf-8')

关于python - 用 BeautifulSoup 用 xml 处理编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54829853/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com