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

使用NetworkX读取.edg网络数据文件时类型转换错误原因排查

错误原因分析及解决办法

核心错误原因

  • 类型转换错误根源:你设置了nodetype=int,但文件中的节点是字符串类型(如Myriel),且文件第一行是表头source,程序会把表头字符串也尝试转为整数,直接触发类型转换失败。
  • 后续格式化异常原因:第二次调用read_edgelist时,未指定跳过表头行,程序会把第一行的source、target、value当成一条边的节点和数据解析,而表头的value是字符串,和实际数据的数值类型不匹配,导致解析格式异常。

正确读取方式

你的文件包含表头且带有value属性列,需用以下参数配置读取:

import networkx as nx
import matplotlib.pyplot as plt
%matplotlib inline

# 读取带表头的边列表,跳过表头行,指定节点为字符串类型,同时读取value属性
G = nx.read_edgelist(
    "les_miserables_edge_file.edg",
    nodetype=str,
    data=(("value", int),),  # 声明value列的类型为整数
    skiprows=1,  # 跳过第一行表头
    create_using=nx.DiGraph()  # 按需创建有向图
)

补充说明

NetworkX的read_edgelist默认假设文件无表头,所有行都是边数据。若文件带表头,必须通过skiprows=1跳过第一行;需根据节点实际类型设置nodetype,不能强行转为不匹配的类型;当边带有属性(如这里的value)时,要用data参数声明属性的名称和类型,确保解析正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:52:04