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。
另请参阅
注意
名为 '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 ] ]