1. 取kylin 数据

import requests
import pandas as pddef getDtu(dtuid,addr):sqlData = '{ "sql":"select * from dtu where dtuid=\'%s\' and addr=\'%s\' order by DTUTIME desc", "project":"yongli" , "offset":0, "limit":100}' %(dtuid, addr)response = requests.post(url     = 'http://kylin1.wdp:7070/kylin/api/query',data    = sqlData,auth    = ('admin', 'admin'),headers = {"Content-Type":"application/json"})dfCols = pd.DataFrame(response.json()["columnMetas"])df = pd.DataFrame(response.json()["results"], columns=dfCols["label"].values)values = pd.DataFrame({ 'dtutime': df["DTUTIME"].map(pd.Timestamp),addr: df["DTUVALUE"]})return valuesgetDtu('8627427973', '1800')

2. 合并行

from pandas import Series, DataFrame
import pandas as pddef getDtuStd(dtuid, addrs):addrList = addrs.strip().split(',')result = pd.DataFrame({'addr':[],'std':[]})for i in addrList:std = getStd(dtuid, i)result = result.append(std, ignore_index=True)return resultgetDtuStd('8627427973', '1820,1810,0004')

3. 合并列

import pandas as pddef getStdJson(dtuid,addr='0002,0004,1019,101A,101B,101C,101D,1023,1024,1025,1800,1802,1804,1806,1808,180A,180C,180E,1810,1812,1814,1816,1818,181A,181C,181E,1820,1822,1824,1826,1828,182A,182C,182E,1830,2000,2002,2004,2006,2008,200A,200C,200E,2100,2102,2104,2106,2108,210A,210C,210E'):data = getDtuStd(dtuid,addr)comments = pd.DataFrame({'addr':['0002','0004','1019','101A','101B','101C','101D','1023','1024','1025','1800','1802','1804','1806','1808','180A','180C','180E','1810','1812','1814','1816','1818','181A','181C','181E','1820','1822','1824','1826','1828','182A','182C','182E','1830','2000','2002','2004','2006','2008','200A','200C','200E','2100','2102','2104','2106','2108','210A','210C','210E'],'comment':['电压变比','电流变比','A相功率因数','B相功率因数','C相功率因数','总功率因数','频率','A相相角','B相相角','C相相角','A相电压','B相电压','C相电压','平均相电压','AB线电压','BC线电压','CA线电压','平均线电压','A相电流','B相电流','C相电流','平均电流','零线电流','A相有功功率','B相有功功率','C相有功功率','总有功功率','A相无功功率','B相无功功率','C相无功功率','总无功功率','A相视在功率','B相视在功率','C相视在功率','总视在功率','A相正向有功电能','B相正向有功电能','C相正向有功电能','总正向有功电能','A相正向无功电能','B相正向无功电能','C相正向无功电能','总正向无功电能','A相反向有功电能','B相反向有功电能','C相反向有功电能','总反向有功电能','A相反向无功电能','B相反向无功电能','C相反向无功电能','总反向无功电能']})result = pd.merge(data, comments, on='addr')#print resultreturn "{\"code\":200,\"message\":\"SUCCESS\",\"data\":" + result.to_json(orient='records',force_ascii=False) + "}"#getStdJson('8627427973', '1820,1810,0004') 

4. 画图

%matplotlib inline
import matplotlib.pyplot as plt, mpld3
from matplotlib.ticker import MultipleLocator, FuncFormatter
import matplotlib.dates as mdatedef drawDTU(dtuid,addr):#print "------- ENTER drawDTU (%s)-------" %dtuiddata = getDTU(dtuid,addr)fig, ax = plt.subplots(figsize=(5,3))ax.plot(data[0], data[1], '-',label="%s" %addr, color = 'blue')majorLocator = MultipleLocator(5)majorFormatter = mdate.DateFormatter('%H')minorLocator = MultipleLocator(1)ax.xaxis.set_major_locator(majorLocator)ax.xaxis.set_major_formatter(majorFormatter)# for the minor ticks, use no labels; default NullFormatterax.xaxis.set_minor_locator(minorLocator)#plt.xlabel("Date")#plt.ylabel("Value")#plt.title("DTU Monitor")plt.legend(loc='upper center', bbox_to_anchor=(0.5,0.98),ncol=3,fancybox=True,shadow=True)ax.grid(color="lightgray", alpha=0.7)#fig.set_size_inches(4, 4)#plt.show()

fig.clear()
            plt.close()

    html = mpld3.fig_to_html(fig)return html#drawDTU('8627427973', '0004')
 

5. 发布服务

from flask import Flask, make_response, request
app = Flask(__name__)@app.route("/dtustd/", methods=["GET","OPTIONS"])
def dtuStd(dtuid):#o = drawDtuStd(dtuid)o = getStdJson(dtuid)resp = make_response(o)resp.headers["Access-Control-Allow-Origin"] = "*"resp.headers["Access-Control-Request-Method"] = "POST,GET,PUT,DELETE,OPTIONS"resp.headers["Access-Control-Allow-Methods"] = "POST,GET,PUT,DELETE,OPTIONS"resp.headers["Access-Control-Allow-Headers"] = "X-Requested-With,Content-Type"if request.method == 'OPTIONS':print "it's OPTIONS"return respapp.run(host="0.0.0.0", port=5007)

转载于:https://www.cnblogs.com/fengwenit/p/5842627.html

Jupyter 服务开发指南相关推荐

  1. Jupyter Notebook 开发指南

    1. Jupyter Notebook介绍 图1 Jupter项目整体架构 [https://docs.jupyter.org/en/latest/projects/architecture/cont ...

  2. Java 单体服务开发指南

    文章目录 一.代码组织模式 1.多仓库 2.单体仓库 二.编程规约(参考<阿里 Java 开发手册>) 1.命名风格 2.常量定义 3.代码格式 4.OOP 规约 5.日期时间 6.集合处 ...

  3. java安全 ——JAAS(Java 认证和授权服务)开发指南

    以下内容转自: http://lyb520320.iteye.com/blog/720478 [0]README 1)本文翻译自:http://java.sun.com/developer/techn ...

  4. 基于soap 的 python web services 服务开发指南

    文章大纲 序言 相关概念 SOA web services SOAP WSDL UDDI 环境搭建 我们使用 python 3.6 这个较新python 版本 服务端开发 客户端开发 suds-jur ...

  5. Java微服务开发指南-Java环境下的微服务

    本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布式系统问题.但是我们通过 ...

  6. Java微服务开发指南 -- Java环境下的微服务

    Java环境下的微服务 本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布 ...

  7. Serverless时代的微服务开发指南:华为云提出七大实践新标准

    摘要:本文结合华为云在Serverless Microservice方面的实践,总结提炼出七大Serverless Microservice开发 "实践标准",为加速全域Serve ...

  8. Java微服务开发指南-使用Dropwizard构建微服务

    Dropwizard的历史要早于Spring Boot和WildFly Swarm,它最早是在2011.12发布的v0.1.0版本,在本文编写的过程中,它已经发布了v0.9.2版本,而v1.0.0版本 ...

  9. anychat java开发文档_AnyChat视频云平台开发指南

    本帖最后由 佰锐科技-刘冬明 于 2017-9-13 11:59 编辑 简介: AnyChat视频云平台提供线上的音视频通信.多应用接入.即时通讯.全景录像.智能排队,直播.点播等服务.为您定制个性化 ...

最新文章

  1. CCF - 201409-3 - 字符串匹配
  2. VSTO进行时––开发日志之二(VSTO Development diary II)
  3. java徐仕锋_传智播客云计算开发 Hadopp视频教程 传智播客之javaEE + Hadoop...
  4. 一次Oracle数据迁移
  5. java抽象类例子_关于java抽象类的例子
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的仓库物品管理系统
  7. svn拷贝一个项目作为新项目
  8. 【数据结构笔记27】树习题:完全二叉搜索树(Complete Binary Search Tree)
  9. hbase倒序查询_hbase过滤器汇总【查询汇总】
  10. ug10.0安装好了怎么找到
  11. 计算机毕业设计JAVA微美试营销系统mybatis+源码+调试部署+系统+数据库+lw
  12. uniapp app 腾讯云 IM 创建群组(陌生交友)
  13. matlab的omega0是什么,ABO设定中,A具体是怎么标记O的?
  14. 深入剖析线程同步工具CountDownLatch原理
  15. 北京的三甲医院都是定点医院吗?不列入医保卡范围不能报销?
  16. 不要在本该奋斗的年纪选择了安逸
  17. 如何云储存服务实现视频存储
  18. 使用fir im进行内测托管
  19. apmserver导入MySQL_APMServ MySQL 错误
  20. sql中的dbl的含义

热门文章

  1. PHP iconv()函数转字符编码的问题(转)
  2. 支付宝支付 第三集:搭建项目及测试(含代码)
  3. 蓝桥杯: 基础练习 数列排序
  4. DateGridView的外观美化
  5. linux查看cpu个数命令,Linux怎么查看物理CPU个数
  6. java web 总结,Java Web 相关概念经典总结(一)
  7. java 签名 apk mac_java 方法签名
  8. apply筛选 pandas_Pandas中第二好用的函数 | 优雅的apply
  9. C++知识点37——拷贝构造函数
  10. 记录一下海上风力机机械装置