Json 如何将Julia字典键从字符串转换为整数
我想将字符串的Julia字典键转换为整数 JSON3将字典的键转换为字符串。我的理解是JSON键只是字符串Json 如何将Julia字典键从字符串转换为整数,json,dictionary,julia,Json,Dictionary,Julia,我想将字符串的Julia字典键转换为整数 JSON3将字典的键转换为字符串。我的理解是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}) ERR
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?来自JSON3.jl自述:
声明我的类型是JSON3.ObjectType()意味着它应该映射到一个JSON对象,其中键是Symbol或String,值是任何其他类型(或任意类型)
因此,在解析步骤中,如果使用数字作为键,您将获得符号。
话虽如此,您可以使用以下代码恢复原始dict:
Dict(parse(Int,string(k))=>v for (k,v) in pairs(a2))
有没有办法做到这一点:
a2=JSON3.read(json,Dict{Int64,String})
。在我看来。如果要使用整数作为键,最好使用普通数组(如果键是非顺序的,则使用稀疏数组)。例如,可以使用数组x=[“一”、“二”、“三”]