2012-11-22 44 views
2

我有一个networkx图,我想通过使用json格式的连接发送一个节点(包括它的属性)。我知道如何序列全图:如何将networkx(python)节点序列化为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])) 

有没有办法来实现这一目标?

+0

在我看来,这是可行的。当您尝试传送这些数据时,您是否遇到错误? – inspectorG4dget

回答

2

您可以调用节点上的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}]'