在 python 中解析 xml 文档(在 url 上)
parse xml document (on url) in python
我正在尝试使用请求解析 xml 文档 (URL),
面临以下错误:
ValueError: Unicode strings with encoding declaration are not supported
这是我的代码:
import requests
from lxml import etree
from lxml.etree import fromstring
req = requests.request('GET', "http://www.nbp.pl/kursy/xml/LastC.xml")
a = req.text
b = etree.fromstring(a)
我怎样才能解析这个 xml。在此先感谢您的帮助
您正在传递 Unicode 解码版本。不要那样做,XML 解析器要求您改为传入原始字节。
而不是 req.text
,在这里使用 req.content
:
a = req.content
b = etree.fromstring(a)
您还可以将XML文档流式传输到解析器:
req = requests.get("http://www.nbp.pl/kursy/xml/LastC.xml", stream=True)
req.raw.decode_content = True # ensure transfer encoding is honoured
b = etree.parse(req.raw)
我正在尝试使用请求解析 xml 文档 (URL),
面临以下错误:
ValueError: Unicode strings with encoding declaration are not supported
这是我的代码:
import requests
from lxml import etree
from lxml.etree import fromstring
req = requests.request('GET', "http://www.nbp.pl/kursy/xml/LastC.xml")
a = req.text
b = etree.fromstring(a)
我怎样才能解析这个 xml。在此先感谢您的帮助
您正在传递 Unicode 解码版本。不要那样做,XML 解析器要求您改为传入原始字节。
而不是 req.text
,在这里使用 req.content
:
a = req.content
b = etree.fromstring(a)
您还可以将XML文档流式传输到解析器:
req = requests.get("http://www.nbp.pl/kursy/xml/LastC.xml", stream=True)
req.raw.decode_content = True # ensure transfer encoding is honoured
b = etree.parse(req.raw)