如何在Python中连接单个引号

时间:2015-07-02 17:52:56

标签: python string python-2.7 lxml quotes

我试图将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+"]")

有更优雅的解决方案吗?

2 个答案:

答案 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'"