neo4j通过python获取关系值

neo4j通过python获取关系值,python,neo4j,Python,Neo4j,我创建了一个关系,现在我想得到关系的价值 我的Python脚本如下: from neo4j.v1 import GraphDatabase, basic_auth from neo4j.v1 import Record as Record result=session.run('''MATCH (:Person {mobile:111111111})-[r]-() RETURN r''') listresult= list(result) for x in list(result): p

我创建了一个关系,现在我想得到关系的价值

我的Python脚本如下:

from neo4j.v1 import GraphDatabase, basic_auth
from neo4j.v1 import Record as Record
result=session.run('''MATCH (:Person {mobile:111111111})-[r]-() RETURN r''')
listresult= list(result)
for x in list(result):
    print x 
返回值:

<Record r=<Relationship id=2 start=26 end=27 type=u'CONTRACT20161118' properties={u'grade': [400], u'month': [20161118]}>>
<Record r=<Relationship id=1 start=26 end=27 type=u'CONTRACT' properties={u'grade': [800], u'month': [20161117]}>>


如何获取记录类型返回值?

您打印的每个
x
实际上是一个
记录
实例。将该
记录
实例视为结果行:对于在Cypher中返回的每个别名,每个“行”中都有一个与该记录中的别名对应的“单元格”。您可以通过与
RETURN
语句中的顺序对应的数字索引(
x[0]
x[1]
)或通过
RETURN
语句中指定的实际别名来访问它们(在这种情况下,由于您
returnr
,因此您希望访问
x['r']
)。这将允许您访问包含数据的实际
关系
实例,该实例具有属性
id
类型
开始
结束
,以及
属性
,最后一个属性与关系的指定属性类似

通常认为最好的做法是只从Cypher语句返回您需要的信息,因此如果您只需要关系类型,那么Cypher语句应该以
返回类型(r)
结束,然后您可以抓取
x['type(r)]
来获取类型。如果只需要属性,
返回属性(r)
x['properties(r)]
记录中使用的字符串键必须与返回的别名完全匹配;如果希望更容易解析,请在
RETURN
语句中指定一个别名,如
RETURN TYPE(r)AS a
,以及相应的
x['a']


另外,您也不需要从
neo4j.v1
导入任何内容,除了
GraphDatabase
basic\u auth
之外,其他所有内容都应该在封面下通过从
GraphDatabase
派生的方法实例化,您打印的每个
x
实际上都是一个
记录
实例。将该
记录
实例视为结果行:对于在Cypher中返回的每个别名,每个“行”中都有一个与该记录中的别名对应的“单元格”。您可以通过与
RETURN
语句中的顺序对应的数字索引(
x[0]
x[1]
)或通过
RETURN
语句中指定的实际别名来访问它们(在这种情况下,由于您
returnr
,因此您希望访问
x['r']
)。这将允许您访问包含数据的实际
关系
实例,该实例具有属性
id
类型
开始
结束
,以及
属性
,最后一个属性与关系的指定属性类似

通常认为最好的做法是只从Cypher语句返回您需要的信息,因此如果您只需要关系类型,那么Cypher语句应该以
返回类型(r)
结束,然后您可以抓取
x['type(r)]
来获取类型。如果只需要属性,
返回属性(r)
x['properties(r)]
记录中使用的字符串键必须与返回的别名完全匹配;如果希望更容易解析,请在
RETURN
语句中指定一个别名,如
RETURN TYPE(r)AS a
,以及相应的
x['a']


另外,您也不需要从
neo4j.v1
导入任何内容,除了
GraphDatabase
basic\u auth
之外,其他所有内容都应该在封面下通过从
GraphDatabase
派生的方法实例化。您是对的!谢谢我的更改如下:result=session.run(''匹配(:Person{mobile:15309912652})-[r]-()返回属性(r)'')#对于结果中的x:print x['PROPERTIES(r)]你是对的!谢谢我更改如下结果=session.run(''匹配(:Person{mobile:15309912652})-[r]-()返回属性(r)'')#对于结果中的x:print x['PROPERTIES(r)]