I'm pulling down a json object that produces a list of Dictionaries.

Each dictionary is a row in the DataFrame with the key representing what I 
want the column name to be. 

At first, I thought I could just do this:

    DataFrame(dict_data)

this produced a deprecation error:

WARNING: DataFrame(::Dict) is deprecated, use convert(::DataFrame,d::Dict)
 in DataFrame at /Users/jkyle/.julia/v0.3/DataFrames/src/deprecated.jl:160
ERROR: `length` has no method matching length(::Nothing)
 in convert at 
/Users/jkyle/.julia/v0.3/DataFrames/src/dataframe/dataframe.jl:998
 in DataFrame at /Users/jkyle/.julia/v0.3/DataFrames/src/deprecated.jl:161


So I tried:

    convert(DataFrame, dict_data)

This returns

ERROR: ArgumentError("All columns in Dict must have the same length")
 in convert at 
/Users/jkyle/.julia/v0.3/DataFrames/src/dataframe/dataframe.jl:1001


What's odd, is I can do something like this:

DataFrame(keys(data))


And  it works, but creates an empty row for each column. I find this odd, 
since the column names are the same.

I feel like I'm missing some "trick" to get this to work.


The dictionary I'm importing looks like this. 

 Dict{String,Any} with 39 entries:
  "edited"                 => false
  "num_reports"            => ""
  "author"                 => "operaaa"
  "distinguished"          => ""
  "created"                => 1.413351949e9
............
  "over_18"                => false
  "approved_by"            => ""
  "report_reasons"         => ""
  "domain"                 => "wkrg.com"
  "ups"                    => 1
  "stickied"               => false

 




Reply via email to