parse_graphml#
- parse_graphml(graphml_string, node_type=<class 'str'>, edge_key_type=<class 'int'>, force_multigraph=False)[source]#
从字符串读取 GraphML 格式的图。
- 参数:
- graphml_stringstring
包含 graphml 信息的字符串(例如,graphml 文件的内容)。
- node_type: Python 类型 (默认: str)
将节点 id 转换为此类型
- edge_key_type: Python 类型 (默认: int)
将 graphml 边 id 转换为此类型。多重图使用 id 作为边键。非多重图将其添加到边属性字典中,名称为“id”。
- force_multigraphbool (默认: False)
如果为 True,返回带有边键的多重图。如果为 False(默认),则当图中存在多重边时返回多重图。
- 返回:
- graph: NetworkX 图
如果没有找到平行边,则返回 Graph 或 DiGraph。否则返回 MultiGraph 或 MultiDiGraph。
注意事项
默认的节点和边属性不会传播到每个节点和边。它们可以从
G.graph
中获取,如果需要,可以使用类似如下的方法应用于节点和边属性>>> default_color = G.graph["node_default"]["color"] >>> for node, data in G.nodes(data=True): ... if "color" not in data: ... data["color"] = default_color >>> default_color = G.graph["edge_default"]["color"] >>> for u, v, data in G.edges(data=True): ... if "color" not in data: ... data["color"] = default_color
此实现不支持混合图(有向边和无向边同时存在)、超图、嵌套图或端口。
对于多重图,将使用 GraphML 边的“id”作为边键。如果未指定,则使用“key”属性。如果没有“key”属性,将提供默认的 NetworkX 多重图边键。
示例
>>> G = nx.path_graph(4) >>> linefeed = chr(10) # linefeed =
>>> s = linefeed.join(nx.generate_graphml(G)) >>> H = nx.parse_graphml(s)