← retour aux snippets

pandas: json_normalize

Aplatir des dictionnaires/listes JSON imbriqués en colonnes.

python pandas #pandas#json#normalize

objectif

Aplatir des dictionnaires/listes JSON imbriqués en colonnes.

code minimal

import pandas as pd

data = [{"id":1,"user":{"name":"a"},"tags":[{"k":"x","v":1},{"k":"y","v":2}]}]
df = pd.json_normalize(data, record_path="tags", meta=["id",["user","name"]])
print(df.to_dict(orient="records"))

utilisation

import pandas as pd

data = {"a":{"b":{"c":1}}}
print(pd.json_normalize(data).columns.tolist())

variante(s) utile(s)

import pandas as pd

data = [{"id":1,"attrs":{"h":10}}, {"id":2,"attrs":{"h":20}}]
print(pd.json_normalize(data, max_level=1).shape)

notes

  • record_path pour lister des sous-objets; meta pour joindre.