neo4j BOLT驱动程序中的py2neo命令

时间:2016-06-15 02:40:45

标签: python neo4j py2neo

我有一个使用py2neo在python中编写的命令来访问交换的名称。这很有效。

graph = Graph()
stmt = 'MATCH (i:Index{uniqueID: 'SPY'})-[r:belongsTo]->(e:Exchange) RETURN e.name'
exchName = graph.cypher.execute(stmt)[0][0]

这可以转换为BOLT neo4j驱动程序声明吗?我总是得到一个错误。我想避免使用迭代器语句,我遍历StatementResult。

driver = GraphDatabase.driver("bolt://localhost", auth=basic_auth("neo4j", "neo4j"))
session = driver.session()
stmt = 'MATCH (i:Index{uniqueID: 'SPY'})-[r:belongsTo]->(e:Exchange) RETURN e.name'
exchName = session.run(stmt)[0][0]
TypeError: 'StatementResult' object is not subscriptable

1 个答案:

答案 0 :(得分:1)

尝试将session.run()的结果存储在list中以保留它们:

driver = GraphDatabase.driver("bolt://localhost", auth=basic_auth("neo4j", "neo4j"))
session = driver.session()
stmt = 'MATCH (i:Index{uniqueID: 'SPY'})-[r:belongsTo]->(e:Exchange) RETURN e.name'

# transform to list to retain result
exchName = list(session.run(stmt))[0][0]

请参阅文档:http://neo4j.com/docs/developer-manual/current/#result-retain