最近打算将平时自己的一些小工具整理整理,由于一直使用python写脚本,而且数据库一直使用MongoDB,所以直接使用pymonogo驱动数据库做一些报表生成的小脚本,此次的脚本主要针对每个月中公司业务每天消耗的星星以及获取的星星数进行统计,其中需要用到的模块有pymongo、datetime。还是比较简单的。具体程序如下:

#! /usr/bin/env python
# coding = utf-8
import pymongo
from datetime import * def connection():
con = pymongo.Connection('192.168.1.242',5586)
db = con.jykt
return db def starcount(beg_y,beg_m,beg_d,end_y,end_m,end_d,getstarfile,losestarfile):
getfile = open('gsn.csv','w+')
losefile = open('lsn.csv','w+')
beginDay = datetime(int(beg_y),int(beg_m),int(beg_d))
endDay = datetime(int(end_y),int(end_m),int(end_d)) + timedelta(days=1)
tmp_beg = beginDay
tmp_end = beginDay + timedelta(days=1)
day_count = 0
print '-------begin running--------'
while tmp_end < endDay:
getSum,loseSum = 0,0
day_count += 1
col = link.jyktCreditInfo.find({"createDate":{"$gte":tmp_beg,"$lte":tmp_end}})
print '------running----------'
print '******天次*******:%d' % day_count
for i in col:
if i['credit'] > 0:
getSum += i['credit']
else:
loseSum += i['credit'] print "GetSum: %d" % getSum
print "LoseSum: %d" % loseSum
getfile.write(str(getSum)+'\n')
losefile.write(str(loseSum)+'\n')
tmp_beg += timedelta(days=1)
tmp_end += timedelta(days=1)
getfile.close()
losefile.close() if __name__ == '__main__':
a = raw_input("Input begin year:")
b = raw_input("Input begin month:")
c = raw_input("Input begin day:")
d = raw_input("Input end year:")
e = raw_input("Input end month:")
f = raw_input("Input end day:")
g = raw_input("Input getstarnumbers filename:")
h = raw_input("Input losestarnumbers filename:")
link = connection()
starcount(a,b,c,d,e,f,g,h)

还是比较简单的,没有考虑开销和性能,也没有使用一些python的高级处理,优化的东西还是比较多的。

与大家共勉!

pymongo数据报表脚本的更多相关文章

  1. 你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(上)

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  2. 一款基于jQuery饼状图比例分布数据报表

    今天给大家带来一款基于jQuery饼状图比例分布数据报表.这款报表插件适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览  ...

  3. 在VS2012后的版本中做数据报表时,提示尚未指定报表“Report1”的报表定义

    有一群的朋友在用VS2012做数据报表时,老是提示 本地报表处理期间出错. 尚未指定报表“Report1”的报表定义 未将对象引用设置到对象的实例. 我看了一下,步骤没错,我用VS2010做了一下,一 ...

  4. SQL Server 2008如何导出带数据的脚本文件

    第一步,选中需要导出脚本的数据库,右键选中 第二步,选取弹出菜单中的任务-生成脚本选项(会弹出一SQL生成脚本的向导) 第三步,在向导中点击下一步,弹出选择数据库界面(默认是自己之前选中的数据库),把 ...

  5. 处理文本,提取数据的脚本-主要就是用sed

    处理文本,提取数据的脚本 #! /bin/sh | sed 's/)<\/small><\/td><td>/\n/g' # 用换行符替换 # 删除带有分号的行 # ...

  6. Jmeter(七)Jmeter脚本优化(数据与脚本分离)

    午休时间再来记一记,嗯..回顾着使用Jmeter的历程,想着日常都会用到的一些功能.一些组件:敲定了本篇的主题----------是的.脚本优化. 说起脚本优化,为什么要优化?又怎么优化?是个永恒的话 ...

  7. 数据报表之Excel操作模块

    Excel是当今最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营数据报表,比如业务质量.资源利用.安全扫描等报表,同时也是应用系统常见的文件导出格式,以便数据使用人员做进 ...

  8. SQL查找数据库中所有没有主键的数据表脚本

    --SQL查找数据库中所有没有主键的数据表脚本 --运行脚本后在消息中可能会显示下面现象中的一种:--(1)数据库中所有数据表都有主键(则证明所有数据表都有主键)--(2)当前数据表[数据表名]没有主 ...

  9. 【性能测试】:LR插入mysql数据库数据,脚本参数化问题

    一,今天准备脚本做mysql数据库的铺地数据,脚本内容不赘述,在批量执行insert语句时候,出现一个问题: // sprintf(chQuery, "insert into table ( ...

随机推荐

  1. No object in the CompoundRoot has a publicly accessible property named

    No object in the CompoundRoot has a publicly accessible property named 'typeid' (no setter could be ...

  2. python文件的中文处理以及个人思路

    环境:ubuntu12.04 python2.7  涉及:ascii,utf-8,gbk,gb2312 首先说下个人处理过程中遇到的问题: 任务是这样:有大概4000个txt,将他们合并到一个文件里, ...

  3. AppDomain卸载与代理

    AppDomain卸载与代理 涉及内容: 反射与MEF解决方案 AppDomain卸载与代理 WinForm.WcfRestService示 插件系统的基本目的是实现宿主与组件的隔离,核心是作为接驳约 ...

  4. tmux tutorial

    This is a great tutorial about tmux quick start: http://www.youtube.com/watch?v=wKEGA8oEWXw&nore ...

  5. 嵌入式Linux学习(二)

    嵌入式系统和通用计算机的主要区别 嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 嵌入式系统主要由嵌入式微处理器 ...

  6. zookeeper使用跟原理

    zookeeper使用和原理 zookeeper介绍zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目中的一个子项目,并且根据google发表的<The Chu ...

  7. Dede推荐文章与热点文章不显示?

    )先看看,id 文档ID,content 标签最终内容(修改此变量后必须更新系统缓存)是不是填写的id: 进入后台->系统->基本参数设置->性能选项->id 文档ID,con ...

  8. JAVA的abstract修饰符 && 接口interface用法 && 抽象类和interface的差别

    abstract修饰符可以修饰类和方法. (1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型.抽象类就相当于 ...

  9. express搭建简易web的服务器

    express搭建简易web的服务器 说到express我们就会想到nodejs,应为它是一款基于nodejs平台的web应用开发框架.既然它是基于nodejs平台的框架那么就得先安装nodejs. ...

  10. 轻松搞定javascript日期格式化问题

    Date.prototype.format = function(f){ var d = this f = f || "yyyy-MM-dd hh:mm:ss" return f. ...