如何将Julia字典键从字符串转换为整数

时间:2019-10-11 02:29:07

标签: json dictionary julia

我想将字符串形式的Julia字典键转换为整数

JSON3将我的Dictionary的键转换为Strings。我的理解是JSON密钥只是字符串。

using JSON3

a1 = Dict(1 => "one", 2 => "two", 3  => "three")

a1_json =  JSON3.write(a1)
  "{\"2\":\"two\",\"3\":\"three\",\"1\":\"one\"}"

a2 = JSON3.read(json,Dict{Int64,String})
  ERROR: MethodError: no method matching Int64(::String)

有什么办法可以将键保留在Int吗?

1 个答案:

答案 0 :(得分:2)

来自JSON3.jl自述文件:

  

声明我的类型为JSON3.ObjectType()意味着它应映射到>无序键值对的JSON对象,其中键为符号 String ,并且值是任何其他类型(或任何)。

因此,在解析步骤中,如果将数字用作键,则将获得符号。 如此说来,您可以使用以下代码恢复原始字典:

Dict(parse(Int,string(k))=>v  for (k,v) in pairs(a2))