2015-12-18 67 views
1

我想检查一个节点是否已经存在于neo4j中。我用下面的代码:如何检查在py2neo中返回的记录是否为空?

from py2neo import Graph 
from py2neo import * 
authenticate("localhost:7474","neo4j", "somepassword") 
graph = Graph("http://localhost:7474/db/data/") 
graph.cypher.execute("CREATE(alice:Person {name:'Alice' , age:15})->[:Friendof]->(bob:Person {name: 'Bob' , age:14})") 
for record in graph.cypher.execute("MATCH(p {title:'The Movie'})RETURN p"): 
    if (record[0]==None): 
     print "None" 
    else: 
     print (record[0]) 

我没有电影标题'电影',但我没有得到“无”打印。有没有其他方法可以做到这一点?

+1

不相关的,但如果你从py2neo进口Graph'从py2neo进口*',它自己的第二个进口做'然后'会导入'Graph'。所以只是第二个是足够的[但认为不好](http://stackoverflow.com/a/2386740/1431750)。 – aneroid

回答

2

“无”不会被打印,因为没有要遍历的记录,所以不执行print语句。

相反,你可以检查是否有返回的任何记录:

results = graph.cypher.execute("MATCH (p:Movie {title:'The Movie'}) RETURN p") 
if results: 
    for record in results: 
     # do something with each record... 
else: 
    print "None" 
+0

你有这种落后,应该是'如果不是结果'。 –

+0

oops - 现在修好了。谢谢@NicoleWhite! –

相关问题