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
我的简单代码是从 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