`

优化从mongdb取数据python代码,用于出fusioncharts图

阅读更多

原始代码

 

def ioBandwidth(request):
    beginDate = request.GET.get("beginDate")
    collection = getCollection()
    data = collection.find().sort("InsertDate",pymongo.ASCENDING)
    mscombi2d.categories = {"category": [{"label":time.strftime("%H:%M",time.strptime(d["InsertDate"],"%Y-%m-%d %H:%M:%S"))} for d in data]}
    data.rewind()#因为开始是用find返回的,所以是游标,取完后要回退到开始才能重新取
    temp = data.clone()#因为后面有两次,只能先把游标拷贝,以方便后面的取值

    mscombi2d.dataset = [
            {"seriesname": u"入带宽", "parentyaxis": "P", "color": "5a885e","renderas":"Area",
             "data": [{"value": (d["InBandwidth"])} for d in data]
        },
            {"seriesname": u"出带宽", "parentyaxis": "S", "renderas": "Line", "color": "dca657", "anchorbgcolor": "dca657",
             "data": [{"value": (d["OutBandwidth"])} for d in temp]
        }
    ]
    res = json.dumps(mscombi2d.to_dict(), ensure_ascii=False, sort_keys=True, indent=4)

    return HttpResponse(res)

 

修改后代码

 

 

def ioBandwidth(request):
    beginDate = request.GET.get("beginDate")
    collection = getCollection()
    data = [d for d in collection.find()]#把游标内数据存入list
    mscombi2d = MSCombi2D(u"大节点带宽",beginDate)
    mscombi2d.categories = {"category": []}
    mscombi2d.dataset = [
            {"seriesname": u"入带宽", "parentyaxis": "P", "color": "5a885e","renderas":"Area",
             "data": []
        },
            {"seriesname": u"出带宽", "parentyaxis": "S", "renderas": "Line", "color": "dca657", "anchorbgcolor": "dca657",
             "data":[]
        }
    ]
    labels = []#时间标签
    inband = []#入带宽
    outband = []#出带宽
    for d in data:
        labels.append({"label":time.strftime("%H:%M",time.strptime(d["InsertDate"],"%Y-%m-%d %H:%M:%S"))})
        inband.append({"value":"%s"%(d["InBandwidth"])})
        outband.append({"value":"%s"%(d["OutBandwidth"])})

    mscombi2d.dataset[0]["data"] = inband
    mscombi2d.dataset[1]["data"] = outband
    
    res = json.dumps(mscombi2d.to_dict(), ensure_ascii=False, sort_keys=True, indent=4)

    return HttpResponse(res)

 

 

1)从游标取出数据存入list,不需要再rewind和clone了

2)只用了一次循环,不像前面循环了三次。

3)查找用索引,而不要用sort

分享到:
评论

相关推荐

    mongodb4.2全量定时增量备份python脚本

    本话题主要围绕"mongodb4.2全量定时增量备份python脚本"展开,讲解如何利用Python编写脚本来实现这一功能。 首先,全量备份是指对数据库进行一次完整的数据复制,不考虑任何历史状态。在MongoDB中,我们可以使用`...

    MongoDB and Python

    Python MongoDB 应用开发,构建高效稳定数据库应用系统

    geoserver发布mongodb矢量数据地图服务.docx

    Geoserver发布MongoDB矢量数据地图服务 Geoserver是一款功能强大且开源的地理信息系统(GIS)服务器,能够实现空间数据的存储、处理和发布。MongoDB是一款NoSQL数据库,能够存储大量的矢量数据。本文将介绍如何使用...

    Python-用于快速探测未授权MongoDB数据库结构

    描述中提到"取第一条内容,并统计数据数量",这意味着该Python脚本会连接到目标MongoDB服务器,读取每个数据库的第一个文档(记录),并计算数据库中的总文档数量。这种行为对于评估数据库的规模、了解数据类型以及...

    mongodb-测试数据

    这个“mongodb-测试数据”压缩包显然包含了一些用于测试MongoDB功能的样例数据集,特别是针对增、删、改、查(CRUD)操作的学习和性能测试。 在深入探讨MongoDB的测试数据之前,我们先来了解一下MongoDB的基本概念...

    MongoDb多数据中心

    数据中心感知性指的是MongoDB能够识别不同数据中心的位置,并且根据预设的策略将数据从一个数据中心自动同步到其他数据中心。这种机制保证了数据的一致性,同时最大限度地减少了跨数据中心通信的延迟。 2. 部署模式...

    将爬虫数据存入mongodb,使用python读取mongodb数据并进行可视化分析(课程设计).zip

    在这个项目中,我们将探讨如何利用Python爬虫技术获取数据,并将其存储到MongoDB数据库中,之后再使用Python从MongoDB中读取数据进行可视化分析。这个项目设计适用于毕业设计,已经在Window 10/11操作系统环境下进行...

    Python-同步MongoDB数据到ElasticSearch

    在IT领域,数据库管理和数据迁移是一项关键任务,特别是在大数据分析和搜索引擎优化的场景下。本文将详细介绍如何使用Python来实现MongoDB数据到ElasticSearch的同步,并探讨全量同步、增量同步和实时同步的实现方法...

    Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法

    本文实例讲述了Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法。分享给大家供大家参考,具体如下: 前言: 想把QQ日志爬虫(Python)爬下来的日志保存到 MongoDB 里面。 但 insert 的时候报错: E...

    mongodb_python连接mongodb_python_MongoDB_

    Python作为一门简洁且功能强大的编程语言,与MongoDB结合使用,提供了丰富的数据操作接口。本篇将详细介绍如何使用Python连接MongoDB数据库,并进行数据的上传、下载等操作。 首先,Python连接MongoDB主要依赖于`...

    爬取链家二手房房价数据存入mongodb并进行分析

    在本项目中,我们将探讨如何使用Python爬虫技术获取链家网站上的二手房房价数据,并将这些数据存储到MongoDB数据库中,以便后续进行数据分析。首先,让我们逐一了解涉及的关键知识点。 1. **Python爬虫**:Python是...

    基于树莓派的门禁管理系统源码+项目说明(树莓派、RFID、Django、Flask、MongoDB)(python).zip

    基于树莓派的门禁管理系统源码+项目说明(技术点:树莓派、RFID、Django、Flask、MongoDB)(python).zip基于树莓派的门禁管理系统源码+项目说明(树莓派、RFID、Django、Flask、MongoDB)(python).zip基于树莓派...

    python insert-mongodb库源代码

    Python的`insert-mongodb`库是一个用于方便地将数据插入MongoDB数据库的工具。这个库主要面向Python开发者,特别是那些需要频繁与MongoDB交互的人。MongoDB是一个流行的NoSQL数据库,以其灵活性、高性能和易用性著称...

    SpringBoot+MongoDB+Echarts图表数据可视化

    在本项目中,MongoDB用于存储和检索用于数据可视化的数据。 Echarts是百度开源的一款JavaScript图表库,支持多种图表类型,如折线图、柱状图、饼图等,具有丰富的交互功能和良好的性能。Echarts的优点在于其易于...

    MongoDB基本操作之Python篇

    在数据查询方面,MongoDB提供了find()方法用于从集合中查询数据。通过find()方法,我们可以按照指定条件查找数据,并且可以利用排序操作来改变结果集的顺序。例如,按照age字段升序排序。此外,find_one()方法用于...

    MongoDB and Python Patterns and processes

    本文将深入探讨如何使用Python与MongoDB进行交互,包括安装配置、基本操作、数据读写等核心知识点。 #### 二、准备工作 ##### 1. 安装MongoDB - **系统需求**:首先确保你的操作系统支持MongoDB。对于Windows、...

    MongoDB大数据处理

    MongoDB大数据处理权威指南 MongoDB大数据处理权威指南 MongoDB大数据处理权威指南

    Python-scrapymongodb用于Scrapy的MongoDB管道

    `scrapy-mongodb`就是这样的一个持久化管道,它使得Scrapy可以直接将数据保存到MongoDB数据库,无需额外的代码处理。 安装`scrapy-mongodb`非常简单,可以通过Python的包管理器pip进行: ```bash pip install ...

Global site tag (gtag.js) - Google Analytics