2015-12-11 3 views
-1

У меня есть dataframe в Julia, как df = DataFrame (A = 1: 4, B = ["M", "F", "F", "M"]). Я должен преобразовать его в JSON, какJulia | Преобразование DataFrame в JSON

{ 
    "nodes": [ 
     { 
      "A": "1", 
      "B": "M" 
     }, 
     { 
      "A": "2", 
      "B": "F" 
     }, 
     { 
      "A": "3", 
      "B": "F" 
     }, 
     { 
      "A": "4", 
      "B": "M" 
     } 
    ] 
} 

Пожалуйста, помогите мне в этом.

+0

все, что вы пробовали –

ответ

3

В DataFrames нет способа сделать это. В github issue где следующий фрагмент кода, с помощью 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 
+0

спасибо Энди за быстрый ответ. –