使用PyMongo从复杂的MongoDB数据库中提取数据并将其转换为.csv文件

时间:2018-07-02 04:08:38

标签: python-3.x mongodb pymongo

我有一个复杂的MongoDB数据库,其中包含嵌套多达7个级别的文档。我需要使用PyMongo提取数据,然后将提取的数据转换为.csv文件。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用json_normalize。 它用于展平json。将数据读取到一个数据帧中,以后可以存储在csv中。

例如:

from pandas.io.json import json_normalize

# mongo_value is your mongo query
mongo_aggregate = db.events.aggregate(mongo_value)

mongo_df = json_normalize(list(mongo_aggregate))

# print(mongo_df)
mongo_columns = list(mongo_df.columns.values)

#just picks the column_name instead of properties.something.something.column_name

for w in range(len(mongo_columns)):
    mongo_columns[w] = mongo_columns[w].split('.')[-1].lower()

mongo_df.columns = mongo_columns

供参考,请阅读此https://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.io.json.json_normalize.html