朱莉娅 | 数据帧到 JSON 的转换

Ami*_*ari 1 json dataframe julia

我在 Julia 中有一个数据框,如 df = DataFrame(A = 1:4, B = ["M", "F", "F", "M"])。我必须将其转换为 JSON 之类的

{
    "nodes": [
        {
            "A": "1",
            "B": "M"
        },
        {
            "A": "2",
            "B": "F"
        },
        {
            "A": "3",
            "B": "F"
        },
        {
            "A": "4",
            "B": "M"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

请帮助我。

And*_*den 5

DataFrames 中没有方法可以做到这一点。在github 问题中,使用 JSON.jl 提供以下代码段作为编写 json 的方法:

using JSON
using DataFrames

function df2json(df::DataFrame)
  len = length(df[:,1])
  indices = names(df)
  jsonarray = [Dict([string(index) => (isna(df[index][i])? nothing : df[index][i])
                     for index in indices])
               for i in 1:len]
  return JSON.json(jsonarray)
end

function writejson(path::String,df::DataFrame)
  open(path,"w") do f
    write(f,df2json(df))
  end
end
Run Code Online (Sandbox Code Playgroud)