我有一个networkx DiGraph。
>> G = nx.DiGraph()
>> G.add_edges_from(product([0],[1,2])) # product is itertools.product
>> G.add_edges_from(product([1],[3,4]))
图中的内容如下:
>> G.adj
{0: {1: {}, 2: {}},
1: {3: {}, 4: {}},
2: {},
3: {},
4: {}}
我希望将其打印为json格式,如下所示:
{
name: 0,
children: [
{
name: 1,
children: [
{
name: 3,
children: []
},
{
name: 4,
children: []
}
]
},
{
name: 2,
children:[]
}
]
}
(原因是,我试图以这种D3可视化所采用的格式编写它。https://gist.github.com/mbostock/4063550)
我不知道该如何解决这个问题。任何帮助非常感谢。
感谢。
答案 0 :(得分:4)
您可以使用json_graph.tree_data()
以嵌套格式输出数据。
from networkx.readwrite import json_graph
import networkx as nx
import json
G = nx.DiGraph([(1,2)])
data = json_graph.tree_data(G,root=1)
s = json.dumps(data)
给出了{"id": 1, "children": [{"id": 2}]}