如何使用neo4j python驱动程序获取列表?
当我的查询请求单个响应时,一切正常,但当我尝试获取整个列表时,会出现以下错误: 记录名称=u'Tom Hanks关系=12> /home/roldanx/.local/lib/python2.7/site packages/neo4j/v1/api.py:772:UserWarning:预期结果为一条记录,但此结果包含13条记录 这只给了我列表的第一行(汤姆·汉克斯,12岁)。有什么办法我可以得到整个名单吗?这是我的代码:如何使用neo4j python驱动程序获取列表?,python,neo4j,driver,Python,Neo4j,Driver,当我的查询请求单个响应时,一切正常,但当我尝试获取整个列表时,会出现以下错误: 记录名称=u'Tom Hanks关系=12> /home/roldanx/.local/lib/python2.7/site packages/neo4j/v1/api.py:772:UserWarning:预期结果为一条记录,但此结果包含13条记录 这只给了我列表的第一行(汤姆·汉克斯,12岁)。有什么办法我可以得到整个名单吗?这是我的代码: from neo4j.v1 import GraphDatabase
from neo4j.v1 import GraphDatabase
driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password"))
session = driver.session()
def degree():
return session.run("""
MATCH(a:Person{name:"Tom Hanks"})--(b)
return a.name AS name, count(distinct b) AS relations
UNION
MATCH (a:Person{name:"Tom Hanks"})--(b)--(c)
return b.title AS name, (count(distinct c)+1) AS relations
""")
deg = degree().single()
print(deg)
driver.close()
运行密码查询时,将返回BoltStatementResult。它提供了查询结果的句柄,但也提供了一些元数据。所以你不能直接把它输入列表。但它是可编辑的,因此您可以简单地循环结果以获得所有记录:
result = degree()
entire_result = [] # Will contain all the items
for record in result:
entire_result.append(record)
在
degree().single()
中,您不是专门从结果中提取一个元素吗?是的,我是这样做的。我需要知道我还应该使用哪种方法。我在官方手册和其他网站上都找不到。我发现这个python驱动程序的问题是,很少有人使用它,所以即使是像这样的简单问题也很难解决。是的,它确实解决了。非常感谢。