我正在使用Python 3脚本,该脚本可用于networkx库提供的图形。图的边缘和节点都具有属性(即:名称,权重,URL ...)。
该脚本需要能够在不同的“会话”之间保留图形:当会话中断时,它应该能够序列化图形并将其存储在文件中,以便以后可以将会话恢复,并且脚本可以重新读取相同的文件,以检索原始图形。
到目前为止,我已经尝试了不同的方法,它们既由networkx提供,也由手动实现,但是似乎都无法满足我的要求。它们要么丢失序列化过程之间的某些属性数据,要么像networkx.write_gexf
那样,将重复的ID分配给节点
下面,对图形进行一些示例操作:
# create graph
G = networkx.Graph()
# add a node with attributes
G.add_node(node_id, label=node_label, url=node_url)
# check for existent edge (in undirected graph)
G.has_edge(other_node,node_id):
# modify an edge attribute
G[other_node][node_id]['weight'] += 1