如何将neo4j返回类型转换为python类型

时间:2015-04-16 18:16:37

标签: python neo4j type-conversion py2neo

我正在使用py2neo,我想从查询返回中提取信息,以便我可以在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中使用我得到的数据?

2 个答案:

答案 0 :(得分:0)

你可以在__str__()方法上使用int(),float()str(),它看起来是在你的例子中输出你想要的值吗?

答案 1 :(得分:0)

graph.cypher.execute()会返回包含多个RecordList的{​​{1}}。每个Records对应于Cypher查询结果的一行。

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

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

RecordList

这应该是for num in ... : your_count = num[0] # gets the first column ,但您现在可以使用intfloat()将其转换为您需要的任何内容。


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

int()

第一个your_count = graph.cypher.execute("MATCH (p:Person) RETURN count(*)")[0][0] 获得结果[0]的第一个Record,第二个RecordList获得[0]的第一列。

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