在 Julia 中,我如何找出为什么 Dict{String, Any} 是 Any?
In Julia, how do I find out why Dict{String, Any} is Any?
我对 Julia 还很陌生,最近大部分时间都在 Python 中编写代码。我正在使用 Julia 处理和操作 HDF5 文件。
所以当我写出(h5write
)时,我得到了一个错误,因为数据参数是混合类型,我需要找出原因。
错误消息说 Array{Dict{String,Any},4}
是我要传递的内容,但是当我查看这些值(这是一个巨大的结构)时,我看到很多 0xff
和这样的值。如何快速找到 Any 而不是单一类型的原因?
只是为了回答这个问题:
如果 my_dicts
是一个 Array{Dict{String, Any}, 4}
,那么找出字典 Any
部分中隐藏了哪些类型的一种方法是:
unique(typeof.(values(my_dicts[1])))
解释一下:
my_dicts[1]
挑选出你的数组的第一个元素,即你的 Dict{String, Any}
values
然后提取值,也就是字典的Any
部分,
typeof.
(注意圆点)对 values
返回的所有元素广播 typeof
函数,返回所有这些元素的类型;和
unique
获取所有这些类型的列表并将其简化为其唯一元素,因此您最终会得到包含在字典 Any
部分中的每个单独类型的列表。
我对 Julia 还很陌生,最近大部分时间都在 Python 中编写代码。我正在使用 Julia 处理和操作 HDF5 文件。
所以当我写出(h5write
)时,我得到了一个错误,因为数据参数是混合类型,我需要找出原因。
错误消息说 Array{Dict{String,Any},4}
是我要传递的内容,但是当我查看这些值(这是一个巨大的结构)时,我看到很多 0xff
和这样的值。如何快速找到 Any 而不是单一类型的原因?
只是为了回答这个问题:
如果 my_dicts
是一个 Array{Dict{String, Any}, 4}
,那么找出字典 Any
部分中隐藏了哪些类型的一种方法是:
unique(typeof.(values(my_dicts[1])))
解释一下:
my_dicts[1]
挑选出你的数组的第一个元素,即你的Dict{String, Any}
values
然后提取值,也就是字典的Any
部分,typeof.
(注意圆点)对values
返回的所有元素广播typeof
函数,返回所有这些元素的类型;和unique
获取所有这些类型的列表并将其简化为其唯一元素,因此您最终会得到包含在字典Any
部分中的每个单独类型的列表。