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

NetworkX读取含long类型属性的GraphML时出现KeyError: 'long'如何解决

问题原因

NetworkX内置的GraphML解析器默认的属性类型映射表没有包含long类型,即便GraphML官方规范允许该类型,解析时遇到未识别的类型就会抛出KeyError: 'long'异常。

解决方法

方法1:修改GraphML源文件(操作最简单)

直接修改你的GraphML文件中对应的key定义,将attr.type="long"改为attr.type="int"即可。Python 3中的int本身支持任意精度的整数,不会出现数值溢出问题,完全可以替代long类型的功能。

修改后的key标签示例:

<key id="d20" for="edge" attr.name="key" attr.type="int" />

方法2:自定义类型映射(无需修改源文件)

如果不能修改源文件,调用nx.read_graphml时传入自定义的类型映射表,补充long类型的映射规则即可,示例代码如下:

import networkx as nx

# 自定义属性类型映射,补充long类型支持
custom_type_map = {
    "boolean": bool,
    "int": int,
    "long": int,
    "float": float,
    "double": float,
    "string": str
}

with open("final_graphml_train/myhead.txt", mode='rb') as graph_input:
    graph = nx.read_graphml(graph_input, types=custom_type_map)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:09:03