如何将 neo4j return 类型转换为 python 类型

How to convert neo4j return types to python types

我正在使用 py2neo,我想从查询 returns 中提取信息,以便我可以在 python 中使用它。例如,我有一个包含三个 "Person" 节点的数据库:

for num in graph.cypher.execute("MATCH (p:Person) RETURN count(*)"): print num

输出:

>> count(*)

3

抱歉,格式很糟糕,它看起来与 mysql 输出基本相同。但是,我想使用数字 3 进行计算,但它的类型为 py2neo.cypher.core.Record。如何将其转换为 python int 以便我可以使用它?从更一般的意义上讲,我应该如何处理密码查询,以便我得到的数据可以在 Python?

中使用

你能在 __str__() 方法上使用 int()、float() str() 来输出你想要的值吗?

graph.cypher.execute() returns 一个 RecordList 包含多个 Records。每个 Record 对应于你的 Cypher 查询结果的一行。

您的 RETURN count(*) 查询 returns 只有一行,因此 for num in ... 循环只会触及您的 RecordList 中的一个 Record

要从记录的列中获取数据,您可以使用索引或列名:

for num in ... :
    your_count = num[0] # gets the first column

这应该是 int,但您现在可以使用 float()int().

将其转换为您需要的任何内容

您的查询returns只有一行一列。您可以将其缩短为:

your_count = graph.cypher.execute("MATCH (p:Person) RETURN count(*)")[0][0]

第一个 [0] 获得结果 RecordList 的第一个 Record,第二个 [0] 获得 Record 的第一列。

看看:http://py2neo.org/2.0/cypher.html#records