J'utilise une fonction comme celle-ci pour obtenir des lignes JSON imbriquées dans une trame de données. Il utilise le pratique pandas json.normalize
fonction :
import pandas as pd
from bson import json_util, ObjectId
from pandas.io.json import json_normalize
import json
def mongo_to_dataframe(mongo_data):
sanitized = json.loads(json_util.dumps(mongo_data))
normalized = json_normalize(sanitized)
df = pd.DataFrame(normalized)
return df
Passez simplement vos données mongo en appelant la fonction avec comme argument.
sanitized = json.loads(json_util.dumps(mongo_data))
charge les lignes JSON en tant que JSON normal
normalized = json_normalize(sanitized)
désimbrique les données
df = pd.DataFrame(normalized)
le transforme simplement en dataframe