read_gml(path, label='label', destringizer=None)[source]#

Read graph in GML format from path.

pathfilename or filehandle

The filename or filehandle to read from.

labelstring, optional

If not None, the parsed nodes will be renamed according to node attributes indicated by label. Default value: ‘label’.

destringizercallable, optional

A destringizer that recovers values stored as strings in GML. If it cannot convert a string to a value, a ValueError is raised. Default value : None.

GNetworkX graph

The parsed graph.


If the input cannot be parsed.


GML files are stored using a 7-bit ASCII encoding with any extended ASCII characters (iso8859-1) appearing as HTML character entities. Without specifying a stringizer/destringizer, the code is capable of writing int/float/str/dict/list data as required by the GML specification. For writing other data types, and for reading data other than str you need to explicitly supply a stringizer/destringizer.

For additional documentation on the GML file format, please see the GML url.

See the module docstring networkx.readwrite.gml for more details.


>>> G = nx.path_graph(4)
>>> nx.write_gml(G, "test.gml")

GML values are interpreted as strings by default:

>>> H = nx.read_gml("test.gml")
>>> H.nodes
NodeView(('0', '1', '2', '3'))

When a destringizer is provided, GML values are converted to the provided type. For example, integer nodes can be recovered as shown below:

>>> J = nx.read_gml("test.gml", destringizer=int)
>>> J.nodes
NodeView((0, 1, 2, 3))