You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python NetworkX中读取、更新和写入图属性?

在Python NetworkX中操作图属性:读取、更新与写入

创建图时设置属性

你已经知道可以在初始化Graph对象时直接指定属性:

import networkx as nx
graph = nx.Graph(name="Simulation_General_Voter_Model")

还可以一次性添加多个自定义属性:

graph = nx.Graph(
    name="Simulation_General_Voter_Model",
    version="1.0",
    simulation_type="voter_model"
)

读取图属性

NetworkX的图属性存储在图对象的graph字典中,有两种常用读取方式:

  • 针对name这类内置特殊属性,可直接通过图对象访问:
    print(graph.name)  # 输出: Simulation_General_Voter_Model
    
  • 通用自定义属性,用字典键值对方式读取:
    print(graph.graph["version"])  # 输出: 1.0
    print(graph.graph.get("simulation_type"))  # 输出: voter_model
    

更新图属性

更新属性同样支持两种方式:

  • 直接修改内置属性:
    graph.name = "Updated_General_Voter_Model"
    
  • 修改或添加自定义属性:
    # 单个属性更新
    graph.graph["version"] = "2.0"
    # 批量更新多个属性
    graph.graph.update({
        "simulation_type": "general_voter_model",
        "last_modified": "2024-05-20"
    })
    

写入与读取带属性的图

要保留图属性保存到文件,需选择支持元数据的格式(如GraphML、GML),以GraphML为例:

写入图到文件

nx.write_graphml(graph, "voter_model_graph.graphml")

从文件读取带属性的图

loaded_graph = nx.read_graphml("voter_model_graph.graphml")
# 验证属性是否保留
print(loaded_graph.name)  # 输出: Updated_General_Voter_Model
print(loaded_graph.graph["version"])  # 输出: 2.0

注意:部分轻量格式(如Edge List)不支持存储图属性,优先选择GraphML或GML格式以确保属性被完整保留。

内容的提问来源于stack exchange,提问作者Torben Ammelt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:12:54