mongo 取随机100条数据写入Excel

 

Python 读取Mongo取随机100条数据写入Excel

 

复制代码
# 随机100人获取 关卡数、现金账户、金币账户
from models import UserDayStat, GameUser, UserInfo

import xlwt

book = xlwt.Workbook()


def write_xls(data, sheet_name, excel_name, title_list):
    global book
    sheet = book.add_sheet(sheet_name)  # 添加一个sheet页
    # 写入标题
    for i, v in enumerate(title_list):
        sheet.write(0, i, v)

    row = 0
    for stu in data:
        col = 1  # 从第二行写入 第一行为标题
        for s in stu:  # 再循环里面list的值,每一列
            sheet.write(col, row, s)
            col += 1
        row += 1
    book.save("{}.xls".format(excel_name))  # 保存到当前目录下
    return book


if __name__ == '__main__':
    device_id_list = []
    pipeline = [
        {'$match': {'date': {'$gte': "2019-12-20", '$lte': "2019-12-29"}}},
        {'$project': {'_id': 0, 'device_id': 1}},
        {'$sample': {'size': 100}}
    ]
    # device_id 列表
    userdaystat = UserDayStat.objects().aggregate(*pipeline)
    for user in userdaystat:
        device_id_list.append(user.get("device_id"))

    # 关卡列表
    guanka_list = []
    for divice_id in device_id_list:
        gameuser = GameUser.objects.get(device_id=divice_id)
        guanka_list.append(gameuser.game_level)

    # 金币账户&&现金账户列表
    coin_balance_list = []
    cash_list = []
    for divice_id in device_id_list:
        userinfo = UserInfo.objects.get(device_id=divice_id)
        coin_balance_list.append(userinfo.cash)
        cash_list.append(userinfo.coin_balance)

    all_data = []
    all_data.append(device_id_list)
    all_data.append(guanka_list)
    all_data.append(coin_balance_list)
    all_data.append(cash_list)
    title_list = ["device_id", "关卡数", "现金账户", "金币账户"]
    write_xls(data=all_data, sheet_name='随机1100人', excel_name="随人b", title_list=title_list)
复制代码

 

posted on   星河赵  阅读(417)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2017-12-29 You-Get 视频下载工具 Python命令行下载工具
2017-12-29 Django Model获取指定列的数据

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示