Ich baue ein Netzwerkx-Diagramm mit Daten von einem Postgres-DB mit psycopg2 abgerufen. Ich kann den Graphen gut erstellen, aber ich frage mich, ob es einen effizienteren und/oder pythonischen Weg gibt, dies zu tun.Wie kann ich aus den psycopg2-Abfrageergebnissen effizient einen Netzwerkx-Graph erstellen?
Aktuelle Code:
DG = nx.DiGraph()
cur.execute(edgeQuery)
for row in cur:
self.DG.add_edge(
row[0], # fnode
row[1], # tnode
weight=row[3], # cost
name=row[4]
)
Die NetworkX Dokumentation zeigt mehr Kanten auf einmal erstellt werden können in einem ebunch durch die Fütterung. Ich könnte einen E-Bunch erstellen, indem ich die Cursor-Ergebnisse wiederhole, aber das wäre nicht effizienter als meine aktuelle Lösung. Ich habe das Gefühl, dass es einen effizienteren Weg geben muss, meine Cursor-Ergebnisse in Netzwerk-Kanten zu übersetzen. Vielleicht etwas wie Zip? Ich würde auch gerne einen Python-Weg finden, um es für die zukünftige Wartung zu vereinfachen (und um meine eigene Neugier zu befriedigen).