gpt4 book ai didi

python - 为什么我无法将 lxml.etree._ElementUnicodeResult 转换为字符串?

转载 作者:行者123 更新时间:2023-12-01 09:32:55 43 4
gpt4 key购买 nike

print(type(players[1]))


for player in players:
player = str(player)

print(type(players[1]))

输出是:

 <class 'lxml.etree._ElementUnicodeResult'>
<class 'lxml.etree._ElementUnicodeResult'>

我需要将此 ElementUnicode 对象转换为字符串,以便我可以在其上调用子字符串,但此 for 循环没有执行此操作。当我将其转换为字符串并同时调用 substring 时,控制台显示:str object has no object substring,这没有任何意义。

 str(players[i]).substring()

对于为什么会出现这种情况以及如何在该对象上调用 substring 有什么想法吗?

最佳答案

_ElementUnicodeResult 转换为 str 不是问题。完整演示:

from lxml import etree

doc = """
<root>
<player>ABC</player>
<player>DEF</player>
</root>"""

root = etree.fromstring(doc)
players = root.xpath("player/text()")

print(type(players[1]))

# Cast each player to a plain string
players = [str(p) for p in players]

print(type(players[1]))

输出:

<class 'lxml.etree._ElementUnicodeResult'>
<class 'str'>
<小时/>

在问题中,您有以下代码:

for player in players:
player = str(player)

print(type(players[1]))

这不会改变 for 循环之外的任何内容。 type(players[1]) 将与以前相同。

此外,str确实没有substring属性。 XPath 有一个 substring() 函数。也许这就是你的想法?

关于python - 为什么我无法将 lxml.etree._ElementUnicodeResult 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49800438/

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