读写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 相同但具有整数键的图形,但这更加麻烦。

我该怎么办?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)