使用 `networkx` 导出到 `graphml` 时可以将哪些数据类型导出为属性?

What data types can be exported as attributes when exporting to `graphml` with `networkx`?

我有一个 networkx 图表,其中包含一些 listdict 属性,函数 nx.write_graphml 不接受这些属性作为导出的有效类型。我找不到可以自动忽略这些属性的函数,所以我决定自己创建一个。

我知道intfloatstring被接受了,但我不知道是否还有其他人,如果有,是哪些。

graphml 格式遵循 XML 结构,根据 docs,接受以下数据类型:

Each attribute title is defined in a key element with an identifier, a name, a title, edge or node, and the type of data. The supported data types:

  • boolean
  • int
  • long
  • float
  • double
  • string

如果列表不是太长,那么一个建议是创建编号的属性(例如 colour_1colour_2)。同样,对于字典。这不方便,但这些是 graphml 约束。

此外,如果您不打算在 Gephi 中使用 listdict,但想保留它们以备后用,那么一种选择是将它们转换为字符串表示形式,使用像 json.dumps.

更新:写入数据时,networkx会尝试将数据类型转换为允许的表示形式。例如,可以在 here.

中找到特定于 numpy 的转化列表