Neo4j如何处理特殊字符,例如“\在Cypher语句中

时间:2015-05-28 17:44:08

标签: neo4j cypher py2neo

我正在使用py2neo将JSON数据作为chyper语句加载到Neo4j中。 我的问题是,有时在我想要作为属性导入到字符串的字符串中有 if(isset($_POST["submit"])){ /* your code */} 等符号:

“ ‘ \

如果我改为:

MERGE (p:Node {name:’This sign ‘ gives error’})

它将适用于语句,但当MERGE (p:Node {name:” This sign ‘ gives error”})在输入字符串中时它将失败。

有没有办法说在字符串中允许所有(或几乎所有)特殊字符? 对不起,如果这是一个愚蠢的问题:)

2 个答案:

答案 0 :(得分:6)

如果要包含双引号,可以用单引号括起来:

CREATE (n:Node {name:'hello " world'}) 
RETURN n.name

n.name
hello " world

如果要包含单引号,可以用双引号括起来:

CREATE (n:Node {name:"hello ' world"}) 
RETURN n.name

n.name
hello ' world

如果它比这更复杂,你可以逃避角色:

CREATE (n:Node {name:"hello \" world"}) 
RETURN n.name

n.name
hello " world

您还可以通过转义来包含反斜杠:

CREATE (n:Node {name:"hello \\ world"}) 
RETURN n.name

n.name
hello \ world

答案 1 :(得分:5)

我建议使用参数,然后cypher解析器不会看到它们。

它只是一个名字 - >你通过字典传递给execute方法的字符串。