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)

原文地址:https://www.cnblogs.com/zhaoyingjie/p/12115648.html

时间: 2024-07-29 19:33:05

mongo 取随机100条数据写入Excel的相关文章

net 总数据中取随机几条数据

List<string> lstSample = new List<string>(); Random rand = new Random(); List<int> lstRand = new List<int>(); for (int i = 0; lstRand.Count() < sampleNum; i++) { int mRandNum = rand.Next(0, mStageDataCount); if (!lstRand.Contain

Nopi数据写入Excel

Nopi数据写入Excel 前几天,在落伍者的现金任务无意中结识一个哥们,他有这样一个需求.因为是搞小软件销售的,所以,其在一个盘符中存储有大量数据(主要是文件夹),大概有12000多个,时间长了,他想整理一下,就是将文件夹的名称写入一个文件里,文本文件或是xls最好是xls,于是我50大元接了这个小活,全当是玩了,呵呵.通过分析需求,其获取所有的文夹名称不是难点,写入xls可以通过NOP 实现.综合,通过一个Winform程序,顺利实现.程序运行如图: 代码如下: public partial

《程序实现》从xml、txt文件里读取数据写入excel表格

直接上码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; impo

Oracle 中sql语句中的取前n条数据

取得薪水最高的前五名员工 sql: select * from ( select empno,ename,sal from emp order by sal desc) where rownum< 6; 注意: select * from ( table ) where rownum< 6; 取前n条数据,oracle中用rownum < m; 1:其中m-1 等于要取的条数 2:rownum 只能有 < ,<= ,没有 > 3: 如m为6,则取得是前5条数据. 原文地

mysql命令行批量插入100条数据命令

先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为";" 如何通过mysql命令行批量插入100条数据呢,可以在代码里实现,也可以通过命令行,也就是通过存储过程: delimiter $$create procedure myproc ()begindeclare num int ;set num = 1 ;while num < 100 d

测试造100条数据存储过程

查询语句 SELECT * FROM 表 WHERE rq='2018-10-13' 存储过程方法以100条数据为例: create PROCEDURE p_insert_test2()begindeclare i int;set i=1;while i<=100 doiNSERT INTO 表 (`字段) VALUES (数据);set i=i+1;end while;commit;end; 使用这个方法: CALL p_insert_test2() --删除这个存储过程 drop proce

selenium配合phantomjs实现爬虫功能,并把抓取的数据写入excel

# -*- coding: UTF-8 -*- ''' Created on 2016年5月13日 @author: csxie ''' import datetime from Base import BasePage import ExcelOperation as excel from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.expected_conditions

Oracle 某字段值相同的取前几条数据

rank() over(partition)的使用(转载) 有的时候会遇到这样的问题,我们需要查询一张表,而且要按照业务排序,比如我需要如下的结果: 地区   日期    费用  产品编号   用户编号 290 201202 258 1              s1     290 201202 200 1              s5     290 201202 100 1              s100     290 201202 90   2              s7 

python脚本——生成EXCEL,连接数据库,并将指定数据写入EXCEL

#!/usr/bin/python# -*- coding: utf-8 -*-#!/usr/bin/env python import MySQLdbimport sysimport xlsxwriter reload(sys)sys.setdefaultencoding('utf-8') #创建一个EXCEL文件workbook = xlsxwriter.Workbook('name.xlsx')#EXCEL的文件名 #创建一个工作表对象 worksheet_1 = workbook.add