2016-02-04 82 views
0

是否可以将一个Networkx图形对象存储在CBOR对象中(通过CBOR序列化数据)?我有相当大的NetworkX图形,需要序列化并存储以供进一步分析。泡菜似乎太慢,并创建一个文件太大。我没有看到足够的CBOR文件来正确确定我的任务是否可行。Python - 与NetworkX的CBOR图

回答

1

我不知道CBOR的表现。从我看来,json似乎非常高效。 所以我测试了序列化和它完美的作品:

from networkx.readwrite import json_graph 
import cbor 

G = nx.Graph() 
G.add_weighted_edges_from([('a1', 'a2', 1.0), ('a2', 'a3', 0.5), 
          ('a3', 'a5', 1.0), ('a4', 'a8', 1.0), ('a8', 'a9', 0.8)]) 

# Serialize graph 
res = json_graph.node_link_data(G) # export Networkx to JSON 
serialized = cbor.dumps(res) # serialize in binary format 

deserialized = cbor.loads(serialized) # deserialize 
H = json_graph.node_link_graph(deserialized) # Get back to original graph