2017-11-14 1 views
0

networkx 2.0을 사용하여 모든 가장자리를 반복하여 추가 가장자리 속성을 동적으로 추가하려고합니다. 그래프는 MultiDiGraph입니다.가장자리 속성을 추가하면 TypeError가 발생합니다. 'AtlasView'객체가 항목 할당을 지원하지 않습니다.

TypeError: 'AtlasView' object does not support item assignment 

어떻게 생각 :

g = nx.read_gpickle("../pickles/" + gname) 
yearmonth = gname[:7] 
g.name = yearmonth # works 
for source, target in g.edges(): 
    g[source][target]['yearmonth'] = yearmonth 

이 코드는 다음과 같은 오류가 발생합니다 :

tutorial에 따르면이 날 내가 아래의 코드에서 할 방법을 속성을 추가 할 수있을 것 같다 잘못하고있는거야?

+1

정상 작동합니다. 당신은'g = nx.Graph(); g.add_nodes_from ([0, 1]); g.add_edge (0, 1); g [0] [1] [ 'a'] = 'b''? – Paul

답변

2

그래프가 nx.MultiGraph 인 경우 발생합니다. 이 경우 0에서 n까지의 추가 색인이 필요합니다. 여기서 n은 두 노드 사이의 가장자리 수입니다.

시도 :

for source, target in g.edges(): 
    g[source][target][0]['yearmonth'] = yearmonth 

튜토리얼 예는 nx.Graph위한 것입니다.

관련 문제