У меня есть график, построенный с использованием пакета networkx в Python, который имеет атрибуты данных, связанные как с узлами, так и с краями. Эти атрибуты представляют собой словари (или списки) сами с вложенными словарями. Я не могу понять, как написать этот график в формате .gexf (или .graphml и т. Д.) Из-за типа данных.Использование nx.write_gexf в Python для графиков с данными dict на узлах и ребрах
Есть ли способ получить write_gexf для анализа этих типов данных в XML? или есть ли другой способ обхода?
Вот пример:
1 import networkx as nx
2
3 G = nx.graph()
4 G.add_node(0, attr1 = { 'name1' : 'Alice', 'name2' : 'Bob' }, attr2 = 5)
5 G.add_node(0, attr1 = { 'name1' : 'Calvin', 'name2' : 'Hobbes' }, attr2 = 6)
6 G.add_edge(0,1, likes = ['milk', 'oj'])
7
8 nx.write_gefx(G,"test.gefx")
который выдает ошибку:
Traceback (most recent call last):
File "so_write_gefx.py", line 8, in <module>
nx.write_gexf(G,"test.gexf")
...
line 378, in add_attributes
for val,start,end in v:
ValueError: too many values to unpack
Очень жаль, что эти графические XML-форматы не могут обрабатывать глубокие типы данных. – Rob
Я думаю, в принципе они могут. Его нужно будет определить как расширение стандарта. – Aric