J'ai un objet JSON qui ressemble à ceci:Aplatir un objet JSON avec d'autres objets JSON embarqués
{ "name":"bacon" "category":["food","meat","good"] "calories":"huge" }
Je suis en train d'aplatir que dans un tableau de valeurs uniques. J'ai besoin de construire une table de faits pour Tableau qui n'est pas capable de travailler directement avec des données croisées ou des données JSON.
Je ne suis pas difficile à savoir si je le fais en Python ou Ruby, mais jusqu'ici j'ai essayé de le faire dans Ruby. Je suis capable de facilement analyser le JSON et obtenir un hachage Ruby qui semble être la bonne chose à faire en premier.
{"name"=>"bacon", "category"=>["food", "meat", "good"], "calories" => "huge"}
et je dois produire ceci:
name,category,calories
bacon,food,huge
bacon,meat,huge
bacon,good,huge
Je pense que je dois faire une boucle à travers ce hachage et essayer de non imbriquer. Je l'ai expérimenté avec quelque chose comme ceci:
def Flatten(inHash)
inHash.each do |key,value|
if value.kind_of?(Hash)
Flatten(value)
else
puts "#{value}"
end
end
end
Mais et qui semble imprimer toutes les valeurs, mais il ne se répète pas la valeur qui est venu avant. Donc, je reçois la sortie qui ressemble
bacon
food
meat
good
huge
Y at-il une méthode intégrée ou bijou ou bibliothèque qui ceci ou que je cherche à construire à partir de zéro? Des idées sur la façon d'obtenir la sortie que je veux? Je parle Ruby et Python donc si vous avez une réponse Python s'il vous plaît partager.
Est-ce que '{" name ":" bacon "" category ": [" nourriture "," viande "," bon "]" calories ":" énorme "}' un objet json valide en Python? – Sibi