3

networkxグラフがあり、json形式を使用した接続を介してノード(その属性を含む)を送信したいと思います。グラフ全体をシリアル化する方法を知っています。

import networkx as nx
from networkx.readwrite import json_graph
G=nx.Graph()
G.add_node(1)
G.node[1]["name"]="alice"
G.add_node(2)
G.add_edge(1,2)
print json.dumps(json_graph.node_link_data(G))

ただし、単一のノードをシリアル化する方法が見つかりませんでした。

print json.dumps(json_graph.node_data(G.node[1]))

これを達成する方法はありますか?

4

1 に答える 1

3

ノードまたは(node、data)のタプルでjson.dumps()を呼び出すことができます。同じことがエッジにも機能します。例えば:

In [1]: import networkx as nx

In [2]: G=nx.Graph()

In [3]: G.add_node(1,color='red',size=75)

In [4]: G.add_node(2,color='blue',size=33)

In [5]: import json

In [6]: json.dumps(G.nodes(data=True))  # all nodes
Out[6]: '[[1, {"color": "red", "size": 75}], [2, {"color": "blue", "size": 33}]]'

In [7]: json.dumps((1,G.node[1])) # (node, data) tuple
Out[7]: '[1, {"color": "red", "size": 75}]'
于 2012-11-22T15:38:32.473 に答える