1

私は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 )

これについてどうすればよいかわかりません。どんな助けでも大歓迎です。

ありがとう。

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 に答える