Question: Is there a function to flatten a nested dictionary?

I am not sure if there is something that fits your exact need, but it does not seem something so hard to implement.

function rec_flatten_dict(d, prefix_delim = ".")
    new_d = empty(d)
    for (key, value) in pairs(d)
        if isa(value, Dict)
             flattened_value = rec_flatten_dict(value, prefix_delim)
             for (ikey, ivalue) in pairs(flattened_value)
                 new_d["$key.$ikey"] = ivalue
             end
        else
            new_d[key] = value
        end
    end
    return new_d
end

Creates some intermediary structs, so it is not a solution with the greatest performance, but it does the job.

julia> rec_flatten_dict(data)
Dict{String,Any} with 4 entries:
  "name.last"  => "Doe"
  "name.nick"  => nothing
  "name.first" => "John"
  "id"         => 42
7 Likes