1

我有一个networkx有向图。

>> 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

我不知道该怎么做。非常感谢任何帮助。

谢谢。

4

1 回答 1

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}]}

于 2013-10-14T09:58:06.137 回答