我试图将lxml方法合并到我正在构建的另一个函数中。
lxml将包含在双引号中的字符串作为输入。在该字符串中,另一个术语包含在单引号中。像这样:
root.findall(".//*[@name='File Name']")
但是,我想从函数的参数中传递单引号('File Name'
)中的值。
像这样:
def foo(bar):
root.findall(".//*[@name="+bar+"]")
但是,我只能通过输入带有双引号和单引号的bar
arg来实现它,例如:"'bar'"
。
如何配置它以便只需要编写'bar'
?
我已经尝试了+"\""+bar+"\""+
,但这没有用。
def foo(bar):
atr = '"'+atr+'"'
root.findall(".//*[@name="+bar+"]")
有更优雅的解决方案吗?
答案 0 :(得分:4)
有点不清楚你在问什么。我想这就是你想要的:
def foo(bar):
root.findall(".//*[@name='{}']".format(bar))
这意味着如果您致电foo("XYZ")
,则会拨打root.findall(".//*[@name='XYZ']")
。
答案 1 :(得分:1)
也许您可以更改foo()
函数以在lxml findall()
函数调用中包含单引号,例如 -
def foo(bar):
root.findall(".//*[@name='" + bar + "']")
如果要转义单引号,可以使用\'
执行此操作。示例 -
>>> '\'bar\''
"'bar'"