是否可以将Networkx Graph对象存储在CBOR对象中(通过CBOR串行化数据)?我有相当大的NetworkX图,需要序列化和存储以供进一步分析。泡菜似乎太慢并且创建了太大的文件。我没有看到关于CBOR的足够文件来正确确定我的任务是否可行。
答案 0 :(得分: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