原始输出和输入网络x

问题描述

我需要在不同的文件位置之间移动一些 networkx 图,并想知道最好的方法

在参考文档 (https://networkx.org/documentation/networkx-1.10/reference/convert.html) 中,没有任何格式可以保留节点中的数据,这对我来说至关重要。

当我尝试使用 nx.to_dict_of_dicts 方法时,这也不会保留所有节点数据。

有没有办法将图形转换为原始形式的字典,然后可以将其复制并粘贴到另一个python脚本中,以便程序包再次理解?

解决方法

您可以为此使用泡菜:

import pickle

# Save (serialize)
pickle.dump(graph,open( "graph.p","wb" ) )

# Load
graph = pickle.load( open( "graph.p","rb" ) )

它将序列化您的图形对象(将 Python 对象以二进制形式保存到磁盘)。然后,您将能够从此文件加载您的 Python 对象(这里是您的 networkx 图)。

在 networkx 中有专门的功能:

read_gpickle()
write_gpickle()

见:https://networkx.org/documentation/stable/reference/readwrite/gpickle.html

事实上,networkx 为这个用例提供了其他选项: https://networkx.org/documentation/stable/reference/readwrite/index.html