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

py2neo Error returning data from Cypher query

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

结果=graph.cypher.execute("MATCH (m)-[:AB]->(a) " "RETURN m.searchField as origin, a.searchField as destination " "LIMIT {limit}", {"limit": 100}) 节点 = [] 关系 = [] 我 = 0 对于结果中的 r: 打印 (r)<br> ent1 = {"title": r.origin, "label": "entity"}

但服务器 returns "NameError("全局名称 'searchField' 未定义",)" 当然我错过了一些东西,但令我困惑的是 Cypher 查询中的 searchField 是错误的对象。 这仍然适用于 py2neo 2.0.8。 感谢您的指点,hj

后期编辑: 感谢您花时间看这个问题。在这个错误中,有两个因素让我更加困惑: 1. cypher中的查询没问题,returns我在neo4j中期望的结果-shell没有问题 2. 当我 运行 瓶装独立时(运行(port=8080) in main),这段代码似乎工作正常,但当我 运行 它作为 apache 服务器下的 wsgi 时失败。我想知道这是 运行ning 用户的问题,还是代码某些部分的上下文的问题。

您在节点上是否有一个名为 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

有了它,我获得了与直接服务器相同(且正确)的行为。该错误是旧版本代码的结果...新手错误!

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