禁赌毒 2022-06-08 15:09 采纳率: 50%
浏览 72

如何用python查询mongodb数据库中的数据并写入excle

如何用python查询mongodb数据库中的数据并写入excle

client = pymongo.MongoClient('localhost',27017)
mydb = client['Pro_chinaventure']
test = mydb['2020-2021']
for x in test.find({'投资案例':{'$regex':'小鹏汽车'}},{'_id':0}):

上面是用python查询mongodb数据库中的数据,请问下面如何写入excle

  • 写回答

1条回答 默认 最新

  • 王鹏飞的解忧屋 2022-06-08 15:23
    关注
    from openpyxl import Workbook
    import pymongo
     
     
    # 读取mongoDB数据库相应的表,每条数据取出数个字段存入一个dict,再将所有的dict存入一个list
    def read_mongoDB():
        # 连接mongoDB数据库,读取 db 库 table 表中的数据
        client = pymongo.MongoClient('127.0.0.1', 27017)
        db = client['db']
        db.authenticate("admin", "pw")
        table = db['table']
     
        # 创建list用于存储从mongoDB中读取到的数据
        mongo_data_list = []
        # 从table中读取的数据为整个documents内容
        documents = table.find()
        # 遍历 documents 表中的每一个document
        for document in documents:
            # 创建dict用于存储各条数据的各个字段名称及内容
            mongo_data_dict = {}
            id_ = document.get("_id")
            name = document.get("name")
            age = document.get("age")
            # 将查询到的的数据字段内容以更新添加的方式添加到每个dict中
            mongo_data_dict.update({"id": id_})
            mongo_data_dict.update({"name": name})
            mongo_data_dict.update({"age": age})
            print("mongo_data_dict:", mongo_data_dict)
            mongo_data_list.append(mongo_data_dict)
        return mongo_data_list
     
     
    # 保存至本地excel表格
    def save_to_excel(mongoDB_data):
        outwb = Workbook()
        outws = outwb.worksheets[0]
        # 遍历外层列表
        for new_dict in mongoDB_data:
            a_list = []
            # 遍历内层每一个字典dict,把dict每一个值存入list
            for item in new_dict.values():
                a_list.append(item)
            # sheet直接append list即可
            outws.append(a_list)
     
        outwb.save(r'/Desktop/mongoDB数据.xlsx')
        print('数据存入excel成功')
     
     
    def main():
        mongoDB_data = read_mongoDB()
        # print(mongoDB_data)
        save_to_excel(mongoDB_data)
     
     
    if __name__ == '__main__':
        main()
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 6月8日

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建