2016-11-17 10 views
0

私は関係を作成しましたが、今は関係の値を取得したいと思います。neo4jはPythonで関係値を取得します

以下

私の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]}>> 

がどのように私はレコード型の戻り値を得ることができますか?

答えて

2

xは、実際にはRecordのインスタンスです。結果の行としてRecordインスタンスを考えてみましょう.Cypherで返すエイリアスごとに、そのレコードのエイリアスに対応する各「行」に「セル」があります。これらは、RETURNステートメントの文番号またはRETURNステートメント(この場合はRETURN rであるため、x['r']にアクセスするため)に割り当てられた実際のエイリアスに対応する数値インデックス(x[0]x[1])でアクセスできます。これにより、データがあるid,type,startendpropertiesのアトリビュートに割り当てられたプロパティのうち、最後にdictのアトリビュートを持つ実際のRelationshipインスタンスにアクセスできます。

一般的には、必要な情報のみをCypherステートメントから返します。したがって、リレーションシップタイプのみが必要な場合は、CypherステートメントはRETURN TYPE(r)で終了し、タイプを取得するにはx['TYPE(r)']を取得できます。あなたは、プロパティをしたい場合は、RETURN PROPERTIES(r)x['PROPERTIES(r)']Recordで使用される文字列キーは、返されるエイリアスと正確に一致する必要があります。解析しやすくする場合は、RETURN TYPE(r) AS aのようなRETURNのエイリアスと対応するx['a']を割り当てます。

余談として

、あなたもGraphDatabasebasic_auth以外neo4j.v1から何かをインポートする必要はありません、他のすべてはGraphDatabase由来の方法によってカバーの下にインスタンス化する必要があります。

+0

あなたは正しいです!ありがとう!私はこの結果= session.run( '' 'MATCH(:Person {mobile:15309912652}) - [r] - ()RETURN PROPERTIES(r)' ''のように変更する 印刷用xの # ['プロパティ(r)'] – zhaowei

関連する問題