generate_gml#

generate_gml(G, stringizer=None)[source]#

以 GML 格式生成图 G 的单个条目。

参数:
GNetworkX 图

要转换为 GML 的图。

stringizer可调用对象,可选

一个 stringizer,用于将非 int/non-float/non-dict 值转换为字符串。如果无法将值转换为字符串,应引发 ValueError 以表明这一点。默认值:None。

返回:
lines: 字符串生成器

GML 数据的行。不附加换行符。

引发:
NetworkXError

如果 stringizer 无法将值转换为字符串,或者要转换的值不是字符串而 stringizer 为 None。

另请参阅

literal_stringizer

注意

名为 'directed'、'multigraph'、'node' 或 'edge' 的图属性,名为 'id' 或 'label' 的节点属性,名为 'source' 或 'target' 的边属性(如果 G 是多重图,则包括 'key')会被忽略,因为这些属性名用于编码图结构。

GML 文件使用 7 位 ASCII 编码存储,任何扩展 ASCII 字符 (iso8859-1) 都显示为 HTML 字符实体。如果不指定 stringizer/destringizer, 代码能够按照 GML 规范的要求写入 int/float/str/dict/list 数据。对于写入其他数据类型以及读取 str 以外的数据,您需要显式提供 stringizer/destringizer

有关 GML 文件格式的更多文档,请参阅 GML url

有关更多详细信息,请参阅模块文档字符串 networkx.readwrite.gml

示例

>>> G = nx.Graph()
>>> G.add_node("1")
>>> print("\n".join(nx.generate_gml(G)))
graph [
  node [
    id 0
    label "1"
  ]
]
>>> G = nx.MultiGraph([("a", "b"), ("a", "b")])
>>> print("\n".join(nx.generate_gml(G)))
graph [
  multigraph 1
  node [
    id 0
    label "a"
  ]
  node [
    id 1
    label "b"
  ]
  edge [
    source 0
    target 1
    key 0
  ]
  edge [
    source 0
    target 1
    key 1
  ]
]