读写GML时标签和id出现NetworkX问题



我有以下示例,其中我以编程方式创建了一个图,将其写入GML文件,然后再次将该文件读取到图中。

我希望能够使用从文件加载的图形来代替程序创建的图形:

import networkx as nx
g = nx.Graph()
g.add_edge(1,4)
nx.write_gml(g, "test.gml")
gg = nx.read_gml("test.gml", label="label")
print(gg.edges(data=True))

test.gml的内容如下:

graph [
node [
id 0
label "1"
]
node [
id 1
label "4"
]
edge [
source 0
target 1
]
]

python代码中的节点1和4现在由ID为0和1的两个节点表示;1〃;以及";4〃;

读取文件后,我现在必须访问节点4,如下所示:

gg['4']

代替

g[4]

对于原始图形。

当然,在查找节点之前,我可以确保将每个节点强制转换为字符串,但这对于大型图来说并不实用。

另一种选择是以编程方式创建(另一个(与g相同但具有整数键的图,但这更麻烦。

我该怎么办?

尝试:

nx.read_gml(fpath, destringizer=int)

参考编号:https://networkx.org/documentation/stable/reference/readwrite/generated/networkx.readwrite.gml.read_gml.html

最新更新