gpt4 book ai didi

json - 使用类似 JSON 的结构遍历 Julia 中的嵌套字典

转载 作者:行者123 更新时间:2023-12-04 14:48:04 25 4
gpt4 key购买 nike

我想知道是否有一种有效的(“规范的”)方法来遍历具有类似 JSON 结构的字典。例如,我有一个字典,其中包含一组有时没有相同键的字典。然后我需要遍历这些字典并检查特定键是否具有特定值。例如:

for cell in cells
if cell["key1"]["key2"]["key3"] == true
# do stuff
end
end
问题是有时单元格不会有“key1”、“key2”或“key3”,因此简单的 get(cell, key1, false) 将不起作用。当然,我总是可以写一堆 if 语句,但我想知道是否有更聪明、更直接的方法来做到这一点。

最佳答案

定义您自己的运算符!

▷(d::Dict{K,V}, k::K2) where {K, V, K2<:K} = get(d, k, nothing)
▷(d::Dict{K,V}, k::Symbol) where {K, V} = get(d, k, d ▷ string(k))
▷(::Nothing, k::K2) where K2 = nothing
在我的代码中 Symbol版本是为了方便。
现在让我们进行设置:
cellA = Dict("key1"=>Dict("key2"=>Dict("key3"=>true)))
cellBad = Dict("key1"=>Dict("keyBad"=>Dict("key3"=>true)))
让我们使用这个新的 API:
julia> cellA ▷ :key1 ▷ :key2 ▷ :key3
true

julia> cellA ▷ :key1 ▷ :key2 ▷ :key3 == true
true

julia> cellBad ▷ :key1 ▷ :key2 ▷ :key3

julia> cellBad ▷ :key1 ▷ :key2 ▷ :key3 == true
false
请参阅 User-defined infix operator 中的可用运算符列表及其优先级

关于json - 使用类似 JSON 的结构遍历 Julia 中的嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69617811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com