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

运行NetworkX教程代码报KeyError: 'color'错误如何解决?

问题原因

该错误由新旧版NetworkX的边属性添加语法差异导致:
你参考的教程写法适配NetworkX 1.x版本,用attr_dict参数传入属性字典,而你本地使用的是NetworkX 2.x及以上版本,该写法会把所有边属性嵌套存到名为attr_dict的属性下,而非直接作为边的一级属性,因此直接访问e[2]['color']会找不到对应键。

解决方案

推荐使用第一种方案,完全匹配教程的设计意图:

  • 修改添加边的代码,将属性字典直接解包为add_edge的关键字参数,属性会直接成为边的一级属性:
## Add edges and edge attributes 
for i, elrow in edgelist.iterrows():
    g.add_edge(elrow[0], elrow[1], **elrow[2:].to_dict())

如果不想调整加边逻辑,也可以直接修改取边颜色的代码,从嵌套的attr_dict中取值:

edge_colors = [e[2]["attr_dict"]["color"] for e in g.edges(data=True)]
注意事项

你贴出的原始代码中g.add_edge所在行没有正确缩进,会触发语法错误,执行前需要补充对应缩进。

内容的提问来源于stack exchange,提问作者Romio Rodriguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:09:03