У меня есть объект JSON, который выглядит следующим образом:Свести объект JSON с другой встроенной JSON объектов
{ "name":"bacon" "category":["food","meat","good"] "calories":"huge" }
Я пытаюсь выпрямиться, что в массив уникальных значений. Мне нужно создать таблицу фактов для Tableau, которая не может напрямую работать с данными с несколькими таблицами или данными JSON.
Я не придирчива к тому, делаю ли я это на Python или Ruby, но до сих пор я пытался это сделать в Ruby. Я могу легко разобрать JSON и получить из него хэнд Ruby, который кажется правильным, что нужно сделать в первую очередь.
{"name"=>"bacon", "category"=>["food", "meat", "good"], "calories" => "huge"}
и мне нужно, чтобы произвести это:
name,category,calories
bacon,food,huge
bacon,meat,huge
bacon,good,huge
Так что я думаю, что нужно перебрать, что хэш и попытаться не-гнездо его. Я экспериментировал с чем-то вроде этого:
def Flatten(inHash)
inHash.each do |key,value|
if value.kind_of?(Hash)
Flatten(value)
else
puts "#{value}"
end
end
end
Но и это, кажется, чтобы напечатать все значения, но она не повторяет значение, которое было до. Таким образом, я получаю вывод, который выглядит как
bacon
food
meat
good
huge
Есть встроенный метод или драгоценный камень или библиотека, которая будет это или я смотрю на строительство с нуля? Любые идеи о том, как получить результат, который я хочу? Я говорю Ruby и Python, поэтому, если у вас есть ответ на Python, пожалуйста, поделитесь.
Is '{" name ":" bacon "" category ": [" food "," meat "," good "]" calories ":" огромный "}' действительный объект json в Python? – Sibi