Uso una funzione come questa per ottenere linee JSON nidificate in un dataframe. Utilizza il pratico pandas json.normalize funzione:
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
Basta passare i tuoi dati mongo chiamando la funzione con esso come argomento.
sanitized = json.loads(json_util.dumps(mongo_data)) carica le righe JSON come normali JSON
normalized = json_normalize(sanitized) cancella i dati
df = pd.DataFrame(normalized) lo trasforma semplicemente in un dataframe