Возможно ли сохранить объект Networkx Graph в объекте CBOR (сериализовать данные через CBOR)? У меня довольно большие графики NetworkX, и вам нужно сериализовать и хранить для дальнейшего анализа. Pickle кажется слишком медленным и создает слишком большой файл. Я не вижу достаточной документации на CBOR, чтобы правильно определить, возможна ли моя задача.Python - CBOR with NetworkX Graph
0
A
ответ
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