I ont des données de json qui peut être représenté par la structure d'arbre avec chaque noeud comporte quatre attributs: name
, id
, child
, parentid(pid)
(par noeud feuille, il ne dispose que de trois attributs: id
, pid
, name
).Comment convertir une donnée json tree en dataframe en Python?
{'child': [{'id': '','child':[{'id': '','child':['name':'','id':'','pid':''], 'name': '', 'pid':''}], 'name': '', 'pid': ''}],'name':'','pid':'','id':''}
Je veux le convertir en une trame de données avec trois colonnes comme:
id, pid, name
1 .., ..., ....
2 .., ..., ....
Avec les données de toutes les couches en trois attributs (id,pid,name)
J'ai essayé pandas.read_json
avec les paramètres par défaut, mais il semble qu'il ne peut pas itérer les couches entières et la sortie est juste comme:
id, pid, name, child
1 .., ..., ...., {'id':'','pid': '','name': '', 'child':[{...}]}
2 .., ..., ...., {'id':'','pid': '','name': '', 'child':[{...}]}
Je me demande s'il existe des méthodes simples pour résoudre ce problème avec ou sans pandas
.
Essayez d'utiliser le ([ 'json_normalize()'] http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.json.json_normalize.html?highlight=json_normalize#pandas .io.json.json_normalize) ou, en fonction de la complexité de vos données, jetez un coup d'œil à la bibliothèque 'flatten' (https://github.com/amirziai/flatten) ([blog post] (https: //medium.com/@amirziai/flattening-json-objects-in-python-f5343c794b10)). –
Merci pour votre réponse. Il semble que 'json_normalize()' ne fonctionne pas pour moi (peut-être que je mets le mauvais paramètre) et 'flatten' renvoie juste trop de colonnes. – natsuapo