Използвам функция като тази, за да получа вложени JSON редове в рамка с данни. Той използва удобния pandas json.normalize
функция:
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
Просто предайте вашите монго данни, като извикате функцията с тях като аргумент.
sanitized = json.loads(json_util.dumps(mongo_data))
зарежда JSON редовете като обикновен JSON
normalized = json_normalize(sanitized)
де-гнезди данните
df = pd.DataFrame(normalized)
просто го превръща в рамка с данни