2017-05-26 6 views
0

Ich versuche Rand zu einem vorhandenen Knoten in Gremlin-Python hinzuzufügen. Aber das Graphtraversal (g) -Objekt hat keine addE-Methode und der Vertex hat keine addEdge-Methode.Gremlin, Wie Kante zu vorhandenen Knoten in Gremlin-Python hinzufügen

+0

Ich weiß, es gibt Möglichkeiten, es wie in dieser Antwort erwähnt zu tun: https://stackoverflow.com/questions/40657636/how-to-remove-an-edge-and-add-a-new-edge-between -zwei Vertices, aber ich möchte es tun wie g.addE(). from_ (a) .to (b) .toList() –

Antwort

1

Sie können es mit einem mittleren Traversal V():

>>> vFrom = g.V(1).next() 
>>> vTo = g.V(6).next() 
>>> g.V(vTo).as_('t').V(vFrom).addE("knows").to("t").toList() 
[e[13][1-knows->6]] 

Ich habe erfahren, dass es ein Fehler ist, dass dieser Ansatz verhindert, dass withSideEffect() in TinkerPop verwendet 3.2.4:

>>> g.withSideEffect("t",vTo).V(vFrom).addE("knows").to("t").toList() 

Ich habe eine issue erstellt, um den Fehler zu verfolgen.

+0

stephen: Danke für die Antwort. Die oben angegebene Antwort löst folgenden Fehler aus: ** TypeError: v [x] ist nicht JSON serializable **. Können Sie bitte Ihre Konfiguration, die Sie für Gremlin verwenden, teilen oder mir helfen, die Konfiguration zu ändern, um diesen Fehler zu beheben. –

+0

pypy Version von 'gremlinpython' wird nicht aktualisiert, was den obigen Fehler verursacht. Daher habe ich das neueste 'gremlinpython' von github und habe es installiert und es hat funktioniert. Bitte aktualisieren Sie das Paket auf Pypy. –

+0

Ich habe gremlinpython 3.2.3 und es wirft immer noch den gleichen Fehler. Wenn IO es mit gremlinpython3.3.0 versuchen, funktioniert nichts. Was könnte das Problem sein? – Arvind

Verwandte Themen