Python,将数据从列表传递到xpath,使用lxml

Python,将数据从列表传递到xpath,使用lxml,python,xpath,lxml,Python,Xpath,Lxml,在lxml中将数据从列表传递到xpath时遇到问题 请参见以下几行: formatted_xpath = str(xpath_string[x]) current_data = xpath_html.xpath("string(formatted_xpath)") # current_data = xpath_html.xpath("string(//*[@class='title-container clearfix']/h1)") 如果我在def页面中使用硬编码的xpath,它可以正常工作

在lxml中将数据从列表传递到xpath时遇到问题

请参见以下几行:

formatted_xpath = str(xpath_string[x])
current_data = xpath_html.xpath("string(formatted_xpath)")
# current_data = xpath_html.xpath("string(//*[@class='title-container clearfix']/h1)")
如果我在def页面中使用硬编码的xpath,它可以正常工作:

current_data = xpath_html.xpath("string(//*[@class='title-container clearfix']/h1)")
但是,如果我使用格式化的xpath变量,它将不起作用。没有找到任何东西。我知道xpath是正确的。我打印出来的时候看起来不错。不知道问题是什么

代码:


问题在于,您基本上拥有一个
格式化的\u xpath
字符串,但其目的是创建一个占位符并使用实际值格式化字符串:

current_data = xpath_html.xpath("string(%s)" % formatted_xpath)
或者,使用
格式()

current_data = xpath_html.xpath("string(%s)" % formatted_xpath)
current_data = xpath_html.xpath("string({})".format(formatted_xpath))