2016-11-17 3 views
0

Ich habe eine Beziehung erstellt, jetzt möchte ich den Wert der Beziehung zu erhalten.neo4j erhalten Beziehung Wert von Python

Mein Python-Skript unter:

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 

Rückgabewert:

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

Wie kann ich den Satztyp Rückgabewert bekommen?

Antwort

2

Jede x, die Sie drucken, ist eigentlich eine Record Instanz. Denken Sie an diese Record Instanz als Ergebnis Zeile: für jeden Alias, den Sie in Cypher zurückgeben, gibt es eine "Zelle" in jeder "Zeile", die diesem Alias ​​in diesem Datensatz entspricht. Sie können auf diese durch numerischen Index (x[0], x[1]) zugreifen, der der Bestellung in der RETURN Anweisung entspricht, oder durch den tatsächlichen Alias, der in der RETURN Anweisung zugewiesen wurde (in diesem Fall möchten Sie x['r'] erreichen). Auf diese Weise können Sie die tatsächliche Relationship Instanz zugreifen, die Ihre Daten hat, die die Attribute hat id, type, start, end und properties, der letzte ein dict -alike der Beziehung der zugeordneten Eigenschaften zu sein.

Es ist allgemein gute Praxis, nur gibt die Informationen, die Sie von einer Cypher Anweisung benötigen, wenn Sie also nur Beziehungstyp, Ihre Cypher Anweisung sollte beenden mit RETURN TYPE(r) wollten und dann könnte man x['TYPE(r)'] greift nur die Art zu erhalten. Wenn Sie nur die Eigenschaften RETURN PROPERTIES(r) und x['PROPERTIES(r)'] möchten. Der in einem Record verwendete Zeichenfolgenschlüssel muss genau dem Alias ​​entsprechen, der zurückgegeben wird; Wenn Sie das Parsen vereinfachen möchten, weisen Sie in der RETURN-Anweisung einen Alias ​​zu, z. B. RETURN TYPE(r) AS a, und die entsprechende x['a'].

Als Nebenwirkung Sie brauchen auch nicht, etwas zu importieren aus neo4j.v1 außer GraphDatabase und basic_auth, alles andere sollte von GraphDatabase abgeleitet unter der Decke von Methoden instanziiert werden.

+0

Sie haben Recht! Vielen Dank ! ich ändere wie dieses result = session.run ('' 'MATCH (: Person {Handy: 15309912652}) - [r] -() RÜCKKEHR EIGENSCHAFTEN (r)' '') # für x im Ergebnis: x drucken ['EIGENSCHAFTEN (r)'] – zhaowei

Verwandte Themen