Neo4j py2neo从Cypher查询返回数据时出错

Neo4j py2neo从Cypher查询返回数据时出错,neo4j,py2neo,Neo4j,Py2neo,我的简单代码是从neo4j中的节点检索属性 results=graph.cypher.execute(“匹配(m)-[:AB]->(a)” 返回m.searchField作为源,返回a.searchField作为目标 “限制{LIMIT}”,{“限制”:100}) 节点=[] rels=[] i=0 对于结果中的r: 打印(r) ent1={“title”:r.origin,“label”:“entity”} 但是服务器返回“namererror”(“未定义全局名称‘searchField’”)

我的简单代码是从neo4j中的节点检索属性

results=graph.cypher.execute(“匹配(m)-[:AB]->(a)”
返回m.searchField作为源,返回a.searchField作为目标
“限制{LIMIT}”,{“限制”:100})
节点=[]
rels=[]
i=0
对于结果中的r:
打印(r)
ent1={“title”:r.origin,“label”:“entity”}

但是服务器返回“namererror”(“未定义全局名称‘searchField’”)“当然,我遗漏了一些内容,但我对Cypher查询中的searchField是错误的对象感到困惑。 py2neo 2.0.8仍然是这样。 谢谢你的指点,hj

后期编辑: 感谢您抽出时间来研究这个问题。在这个错误中,有两个因素让我更加困惑: 1.cypher中的查询很好,返回我在neo4jshell中期望的结果,没有问题
2.当我以独立方式运行瓶子时(在main中运行(port=8080),这段代码似乎工作正常,但当我在apache服务器下以wsgi运行瓶子时,这段代码失败。我想知道这是运行用户的问题,还是代码中某些部分的上下文问题。

节点上是否有名为searchField的属性? 否则,查询将失败

顺便说一句,在查询中使用字符串更容易,如下所示:

query = '''
MATCH (m)-[:AB]->(a)
RETURN m.searchField as origin, a.searchField as destination 
LIMIT {limit}
'''
result = graph.cypher.execute(query, limit='foo')

节点上是否有名为searchField的属性? 否则,查询将失败

顺便说一句,在查询中使用字符串更容易,如下所示:

query = '''
MATCH (m)-[:AB]->(a)
RETURN m.searchField as origin, a.searchField as destination 
LIMIT {limit}
'''
result = graph.cypher.execute(query, limit='foo')

成功了!它与代码无关,但我不知道通过wsgi服务的新python代码的任何刷新至少需要apache重新加载

sudo service apache2 reload
这样,我获得了与direct服务器相同(且正确)的行为。错误是旧版本代码的结果。。。新手错误


谢谢你,很抱歉给你添麻烦,hj已经开始工作了!它与代码无关,但我不知道通过wsgi服务的新python代码的任何刷新至少需要apache重新加载

sudo service apache2 reload
这样,我获得了与direct服务器相同(且正确)的行为。错误是旧版本代码的结果。。。新手错误


谢谢,很抱歉给您带来麻烦,hj

查询似乎没有问题。请参见问题中的其他编辑。谢谢这个问题似乎很好。请参见问题中的其他编辑。谢谢hj