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

Python新手求助:NetworkX导入带权边列表时出现解码错误

解决NetworkX读取加权边列表的解码错误

嘿,作为Python和NetworkX的新手,遇到这个解码错误很正常,我来帮你搞定它!

你遇到的line.decode(encoding)相关错误,大概率是文件打开方式的编码不匹配,或者手动打开文件后,NetworkX处理时的编码逻辑冲突导致的。下面给你几个简单有效的解决方案:

方案1:让NetworkX直接处理文件(最推荐)

不用手动打开文件,直接把文件名传给read_weighted_edgelist,NetworkX会自动处理文件的打开、编码和关闭,代码更简洁也更不容易出错:

import networkx as nx

# 直接传入文件名,指定节点类型为int
G = nx.read_weighted_edgelist('weightedlist.txt', nodetype=int)

方案2:手动打开文件时指定编码

如果你一定要手动管理文件对象,记得在open时指定正确的编码(比如utf-8,如果你的文件是其他编码就对应调整),同时用with语句自动关闭文件(比手动fh.close()更安全):

import networkx as nx

with open('weightedlist.txt', 'r', encoding='utf-8') as fh:
    G = nx.read_weighted_edgelist(fh, nodetype=int)

额外验证步骤

确保你的weightedlist.txt格式完全符合要求:

1 2 3
4 5 6
7 8 9

  • 每行必须是三个用空格分隔的数值,没有多余的空行或特殊字符
  • 源节点、目标节点、权重都是纯数字,没有字母或符号

这样调整后,应该就能顺利读取带权边列表啦!

内容的提问来源于stack exchange,提问作者Ruben Janssen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:02:03