Python &引用;类型';lxml.etree._elementunicodesult';无法序列化";
我使用lxml从网页中提取数据,但无法将结果ElementUnicode对象转换为字符串。这是我的密码:Python &引用;类型';lxml.etree._elementunicodesult';无法序列化";,python,web-scraping,lxml,Python,Web Scraping,Lxml,我使用lxml从网页中提取数据,但无法将结果ElementUnicode对象转换为字符串。这是我的密码: from lxml import html from lxml import etree from lxml.etree import tostring url = 'https://www.imdb.com/title/tt5848272/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=2413b25e-e3f6-4229-9efd-599bb9ab1f97&am
from lxml import html
from lxml import etree
from lxml.etree import tostring
url = 'https://www.imdb.com/title/tt5848272/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=2413b25e-e3f6-4229-9efd-599bb9ab1f97&pf_rd_r=9S5A89ZHEXE4K8SZBC40&pf_rd_s=right-2&pf_rd_t=15061&pf_rd_i=homepage&ref_=hm_otw_t0'
page = requests.get('url')
tree = html.fromstring(page.content)
a = tree.xpath('//div[@class="credit_summary_item"]/a[../h4/text() = "Directors:"]/text()')
mynewlist = []
for i in a:
b = etree.tostring(i, method="text")
mynewlist.append(b)
以下是我得到的错误:
TypeError: Type 'lxml.etree._ElementUnicodeResult' cannot be serialized.
任何帮助都将不胜感激。变量
i
是一个对象(一种特殊类型的字符串)。您不能将其用作参数
a
变量(XPath计算的结果)是所需字符串的列表。如果此列表的元素必须是纯字符串而不是\u elementunicodesult
对象,则可以使用列表理解:
newlist = [str(s) for s in a]
我也很难将
'lxml.etree.\u elementunicodesult'
转换为字符串
然后我找到了以下链接
您可以看到\u elementunicodesult
从unicode
继承了许多函数
我使用了\uu str\uu()
函数,将其转换为字符串类型
它还直接支持许多其他字符串操作。你可以签入链接。希望这有帮助;) 你能给我们你正在解析的xml文件吗?根据我的经验,
tree.xpath('//path/text()')
应该输出一个字符串列表,所以你接下来要做的事情对我来说有点奇怪,因为我从网页上抓取XML,所以没有XML,我觉得lxml可以做到这一点;这是一个最简单的工作示例:我们必须能够运行codeYes,请提供一个。我使用正在处理的URL链接和XPath查询编辑了问题。问题是结果列表由_elementUnicodesult字符串组成;我正在尝试将这些字符串转换为普通字符串。newlist=[str(s)for s in a]
应该可以这样做。