networkx의 1.6.1에서 사용했던 코드를 일부 풀어 냈습니다. 1.8.1에서는 gml
또는 graphml
에 쓸 때 작동하지 않습니다. 내가 사용하는 경우네트워크 x 가장자리가 속성을 올바르게 추가하지 않음
AttributeError: 'str' object has no attribute 'items'
:
문제는 가장자리과 같이 데이터 딕셔너리 내부 속성을 쓸 수 없습니다 것으로 귀결 :
BasicGraph = nx.read_graphml("KeggCompleteEng.graphml")
for e,v in BasicGraph.edges_iter():
BasicGraph[e][v]['test'] = 'test'
nx.write_graphml(BasicGraph, "edgeTester.graphml")
는 오류를 발생 for e,v,data in BasicGraph.edges_iter(data=True):
데이터 인쇄를 같이 그래서 :
{'root_index': -3233, 'label': u'unspecified'}
test
일명 새로운 속성은 사전 밖에 있습니다.
설명서에 위와 같이 할 수 있다고 나와 있습니다. 그러나, 나는 어리석은 실수를 범하고 올바른 길로 되돌아가는 것을 감사 할 것입니다!
편집 :
그래서 내가 프로그램 내부에서 발생하는 그래프와 함께 프로그램을 실행 :BasicGraph = nx.complete_graph(100)
을하고 잘 달렸다.
그런 다음 프라이머 : BasicGraph = nx.read_graphml("graphmltest.graphml")
의 예제 그래프 파일을 사용하여 실행했습니다. (심지어 Cytoscape를 가져오고 나가서 문제가 아닌지 확인했습니다.)
분명히 내가 사용하고있는 파일입니다. Here's 링크를 통해 누구와 함께 문제를 볼 수 있습니까?
해당 파일을로드 할 필요가 없습니다하도록 코드를 수정할 수를 사용하는 것이 안전하다? – tacaswell
'nx.complete_graph()'와 다른 graphml 파일로 시도해 보았는데, 모두 잘 동작했습니다. 업데이트보기! – Darkstarone