Python中字符串内的变量

时间:2015-02-19 20:07:57

标签: python string

我很困惑。我无法理解为什么像Python这样的东西工作正常:

 PPcode = 'something'
 createNode = {"statement":"CREATE (bconf:DslBconf {nodeType:"+PPcode+", id: 'DSL-MINI-BCONF-ALU', t: '1'})"}

这样的事情给我一个错误:

 createNode = {"statement":"CREATE (bconf:DslBconf {nodeType:"something", id: 'DSL-MINI-BCONF-ALU', temaxia: '1'})"}

唯一的区别是nodeType属性。而不是拥有变量我只是直接传递值。如果在第二个片段中我将双引号更改为单引号,但如果我在第一个片段中执行相同操作,则将PPcode变量视为字符串。有没有搞错??请帮忙!

3 个答案:

答案 0 :(得分:4)

在字典中

{"statement":"CREATE (bconf:DslBconf {nodeType:"14", id: 'DSL-MINI-BCONF-ALU', temaxia: '1'})"}

值为

"CREATE (bconf:DslBconf {nodeType:"14", id: 'DSL-MINI-BCONF-ALU', temaxia: '1'})"

由于双引号"决定字符串的开头/结尾,前面提到的行将等同于:

string14string

这不是一个有效的sintax。

你能做些什么来解决它?也许你可以连接数字14,但是使用它的字符串表示:

string + str(14) + string

将导致:

"CREATE (bconf:DslBconf {nodeType:" + str(14) + ", id: 'DSL-MINI-BCONF-ALU', temaxia: '1'})"

修改

  • 根据您的澄清,请务必注意字符串连接是使用+运算符完成的:

    "CREATE (bconf:DslBconf {nodeType:" + "some other string" + ", id: 'DSL-MINI-BCONF-ALU', temaxia: '1'})"
    

答案 1 :(得分:1)

您的工作代码评估为

"statement":"CREATE (bconf:DslBconf {nodeType:14, id: 'DSL-MINI-BCONF-ALU', temaxia: '1'})"

并且您的损坏代码评估为

"statement":"CREATE (bconf:DslBconf {nodeType:"14", id: 'DSL-MINI-BCONF-ALU', temaxia: '1'})"

一个人在14附近引用,一个没有

答案 2 :(得分:1)

在第一个示例中,nodeType作为整数传入,第二个是字符串。

nodeType: 14

VS。

nodeType: "14"