2017-02-08 5 views
0

Schreiben von Python-Programm zum Abrufen vorhandener Neo4j Knoten und Aktualisieren von Eigenschaften mit py2neov3 package.
Neo4j Py2neo aktualisiert Knoteneigenschaften nicht

Filmknoten hat Titel & Jahr Eigenschaften. Habe ein Python-Wörterbuch mit einer Liste von Filmen, die hinzugefügt werden sollen.

Ich habe unter Optionen versucht, Filmknoten wird hinzugefügt. Die Jahr-Eigenschaft wird jedoch nicht aktualisiert.

Option # 1: Verwenden Sie Py2neo OGM. Starten Sie die Transaktion, Film-Objekt erstellen, füllen Titel, rufen merge, bevölkern Jahr, rufen Push schließlich begehen

Option # 2: Statt OGM (kommentierten Code unten), Verwendung Node Funktion, rufen Sie merge und Push.

Ich habe mit den oben genannten Optionen gemacht, aber es hat nicht für mich funktioniert. Python-Version 3.5.2

Code:

try: 
tx = gdb.begin() ##gdb is Graph object 
for x in moviedict.keys(): 
m1 = Movie() 
m1.title = moviedict[x]['title'] 
tx.merge(m1) 
m1.year = moviedict[x]['year'] 
tx.graph.push(m1)  
tx.commit() 
"""Option2 for x in moviedict.keys(): 
    m1 = Node('Movie',title=moviedict[x]['title']) 
    gdb.merge(m1) 
    m1['year'] = moviedict[x]['year'] 
    gdb.push(m1) 
""" 

Kann mir jemand zu diesem Thema helfen?
Ihre Hilfe wird sehr geschätzt.
Mit freundlichen Grüßen.

Antwort

0

Ich habe nicht die Wörterbücher verwenden, weil ich das Beispiel wollten beide kurz und runnable

import py2neo 
    import py2neo.ogm 

    from py2neo import Graph 
    from py2neo.ogm import GraphObject, Property 

    class Movie(GraphObject): 
     __primarykey__ = "title" 

     title = Property() 
     released = Property() 

    def authenticateAndConnect(): 
     py2neo.authenticate('localhost:7474', 'user', 'password') 
     return Graph('http://localhost:7474/default.graphdb/data/')  

    def foo(): 
     graph = authenticateAndConnect() 
     movie = Movie.select(graph).where("_.title = 'The Matrix Reloaded'").first() 
     movie.released = 2017 
     graph.push(movie) 

    if __name__ == '__main__': 
     foo() 
+0

Danke sein. Tatsächlich versuchen, zu aktualisieren oder hinzuzufügen, wenn Film nicht vorhanden ist, Merge, gefolgt von Push, der Film mit out Jahr hinzufügt. Ihr Code funktioniert für die Aktualisierung. –

Verwandte Themen