首页 > 解决方案 > 在 Julia 中,我如何找出为什么 Dict{String, Any} 是 Any?

问题描述

我对 Julia 很陌生,这些天主要是用 Python 编写代码。我正在使用 Julia 来处理和操作 HDF5 文件。

所以当我写出 ( h5write) 时,我得到一个错误,因为 data 参数是混合类型的,我需要找出原因。

错误消息说Array{Dict{String,Any},4}的是我要传递的内容,但是当我查看这些值(而且它是一个巨大的结构)时,我看到了很多0xff这样的值。我如何快速找到为什么是 Any 而不是单一类型?

标签: dictionaryjuliahdf5

解决方案


只是为了回答这个问题:

如果my_dictsArray{Dict{String, Any}, 4},那么找出隐藏在Anydict 部分中的类型的一种方法是:

unique(typeof.(values(my_dicts[1])))

解释:

  • my_dicts[1]挑选出你的数组的第一个元素,即你的一个Dict{String, Any}
  • values然后提取值,这是Any字典的一部分,
  • typeof.(注意点)在所有返回的元素上广播typeof函数values,返回所有这些元素的类型;和
  • unique获取所有这些类型的列表并将其简化为唯一的元素,因此您最终将Any获得字典部分中包含的每个单独类型的列表。

推荐阅读