Read and write graphs in GraphML format.


This parser uses the standard xml library present in Python, which is insecure - see XML Processing Modules for additional information. Only parse GraphML files you trust.

This implementation does not support mixed graphs (directed and unidirected edges together), hyperedges, nested graphs, or ports.

“GraphML is a comprehensive and easy-to-use file format for graphs. It consists of a language core to describe the structural properties of a graph and a flexible extension mechanism to add application-specific data. Its main features include support of

  • directed, undirected, and mixed graphs,

  • hypergraphs,

  • hierarchical graphs,

  • graphical representations,

  • references to external data,

  • application-specific attribute data, and

  • light-weight parsers.

Unlike many other file formats for graphs, GraphML does not use a custom syntax. Instead, it is based on XML and hence ideally suited as a common denominator for all kinds of services generating, archiving, or processing graphs.”


GraphML is an XML format. See for the specification and for examples.

read_graphml(path[, node_type, ...])

Read graph in GraphML format from path.

write_graphml(G, path[, encoding, ...])

Write G in GraphML XML format to path

generate_graphml(G[, encoding, prettyprint, ...])

Generate GraphML lines for G

parse_graphml(graphml_string[, node_type, ...])

Read graph in GraphML format from string.