generate_gml#
- generate_gml(G, stringizer=None)[source]#
Generate a single entry of the graph
G
in GML format.- Parameters:
- GNetworkX graph
The graph to be converted to GML.
- stringizercallable, optional
A
stringizer
which converts non-int/non-float/non-dict values into strings. If it cannot convert a value into a string, it should raise aValueError
to indicate that. Default value: None.
- Returns:
- lines: generator of strings
Lines of GML data. Newlines are not appended.
- Raises:
- NetworkXError
If
stringizer
cannot convert a value into a string, or the value to convert is not a string whilestringizer
is None.
See also
Notes
Graph attributes named ‘directed’, ‘multigraph’, ‘node’ or ‘edge’, node attributes named ‘id’ or ‘label’, edge attributes named ‘source’ or ‘target’ (or ‘key’ if
G
is a multigraph) are ignored because these attribute names are used to encode the graph structure.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 writingint
/float
/str
/dict
/list
data as required by the GML specification. For writing other data types, and for reading data other thanstr
you need to explicitly supply astringizer
/destringizer
.For additional documentation on the GML file format, please see the GML url.
See the module docstring
networkx.readwrite.gml
for more details.Examples
>>> G = nx.Graph() >>> G.add_node("1") >>> print("\n".join(nx.generate_gml(G))) graph [ node [ id 0 label "1" ] ] >>> G = nx.OrderedMultiGraph([("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 ] ]