我很困惑。我无法理解为什么像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变量视为字符串。有没有搞错??请帮忙!
答案 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"