node_link_data#
- node_link_data(G, *, source='source', target='target', name='id', key='key', edges=None, nodes='nodes', link=None)[source]#
以节点-链接格式返回数据,该格式适用于 JSON 序列化并在 JavaScript 文档中使用。
- 参数:
- GNetworkX 图
- source字符串
一个字符串,提供用于存储 NetworkX 内部图数据的“source”属性名称。
- target字符串
一个字符串,提供用于存储 NetworkX 内部图数据的“target”属性名称。
- name字符串
一个字符串,提供用于存储 NetworkX 内部图数据的“name”属性名称。
- key字符串
一个字符串,提供用于存储 NetworkX 内部图数据的“key”属性名称。
- edges字符串
一个字符串,提供用于存储 NetworkX 内部图数据的“edges”属性名称。
- nodes字符串
一个字符串,提供用于存储 NetworkX 内部图数据的“nodes”属性名称。
- link字符串
自版本 3.4 起已弃用: 参数
link
已弃用,并将在版本3.6
中移除。请改用edges
关键字。一个字符串,提供用于存储 NetworkX 内部图数据的“edges”属性名称。
- 返回:
- data字典
一个包含节点-链接格式数据的字典。
- 引发:
- NetworkXError
如果“source”、“target”和“key”的值不是唯一的。
说明
图、节点和链接属性以这种格式存储。请注意,为了符合 JSON 标准,属性键将被转换为字符串。
属性“key”仅用于多重图。
要将
node_link_data
与node_link_graph
结合使用,属性的关键字名称必须匹配。示例
>>> from pprint import pprint >>> G = nx.Graph([("A", "B")]) >>> data1 = nx.node_link_data(G, edges="edges") >>> pprint(data1) {'directed': False, 'edges': [{'source': 'A', 'target': 'B'}], 'graph': {}, 'multigraph': False, 'nodes': [{'id': 'A'}, {'id': 'B'}]}
使用 JSON 序列化
>>> import json >>> s1 = json.dumps(data1) >>> s1 '{"directed": false, "multigraph": false, "graph": {}, "nodes": [{"id": "A"}, {"id": "B"}], "edges": [{"source": "A", "target": "B"}]}'
图也可以通过将
node_link_data
作为编码器函数来序列化。>>> s1 = json.dumps(G, default=nx.node_link_data) >>> s1 '{"directed": false, "multigraph": false, "graph": {}, "nodes": [{"id": "A"}, {"id": "B"}], "links": [{"source": "A", "target": "B"}]}'
用于存储 NetworkX 内部图数据的属性名称可以指定为关键字选项。
>>> H = nx.gn_graph(2) >>> data2 = nx.node_link_data( ... H, edges="links", source="from", target="to", nodes="vertices" ... ) >>> pprint(data2) {'directed': True, 'graph': {}, 'links': [{'from': 1, 'to': 0}], 'multigraph': False, 'vertices': [{'id': 0}, {'id': 1}]}