a06e
a06e

Reputation: 20804

How to get the data for the edge between two nodes?

I want to get the edge between two nodes in a networkx graph. More specifically, I want to get some data associated with this edge. I know a priori that these two nodes are linked. Is there a function to do this?

Upvotes: 18

Views: 17704

Answers (1)

Joel
Joel

Reputation: 23907

The edge data are stored in a dictionary. To access that dictionary, use get_edge_data().

import networkx as nx
G=nx.Graph()
G.add_edge(1,2, weight=5)
G.get_edge_data(1,2)
> {'weight': 5}

If you want to iterate through all the edges you can use G.edges(data=True)

H = nx.Graph()
H.add_edge(2, 3, color = 'red')
H.add_edge(1, 2, weight = 4)
for u,v,data in H.edges(data=True):
    print(u, v, data)
> 1 2 {'weight': 4}
> 2 3 {'color': 'red'}

Upvotes: 22

Related Questions