MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Obtenir des données imbriquées de MongoDB dans une trame de données Pandas

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