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

Julia字典异常:可打印键但无法外部访问的问题求助

问题原因与解决建议

核心问题

你的字典键实际是Symbol类型,但循环外你用了String类型的键访问——Julia是强类型语言,不同类型的键无法匹配,因此触发KeyError。

eachcol(nodedata_data)返回的列名是Symbol(比如:pwpl_idno_12184),通过Dict(pairs(...))生成字典后,键的类型保持为Symbol。循环中打印键时,Julia会自动把Symbol转换成类似字符串的格式输出,让你误以为是String,但实际类型是Symbol。

验证方法

在循环内添加一行打印键的类型,即可确认:

for (key, value) in nodedata_dict
    if counter <= 2
    println("Key:$key, Value: $value")
    println(typeof(key))  # 新增该行,会输出`Symbol`
    println(key in keys(nodedata_dict))
    println(nodedata_dict[key])
    counter += 1
    end
end

解决办法

有两种方案可选:

方案1:创建字典时将键转为String类型

修改字典初始化代码,把Symbol键转成String:

nodedata_dict = Dict(string(k) => v for (k, v) in pairs(eachcol(nodedata_data)))

之后用字符串键"pwpl_idno_12184"就能正常访问。

方案2:循环外使用Symbol类型的键访问

保持字典不变,访问时用Symbol格式的键(冒号开头):

println("ok can we get this node right", nodedata_dict[:pwpl_idno_12184])

额外验证

可以打印所有键的类型彻底确认问题:

println(typeof.(keys(nodedata_dict)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:52:06