一个获取上海地区AQI质量的Python脚本

https://github.com/Teaing/Raspberrypi/blob/master/GetPmData_Shanghai.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Author:Tea import time
import sys
import json
import random
import requests
reload(sys)
sys.setdefaultencoding('utf8') def main():
Get_PmData() def Convert_Des_Text(aqi_data):
if aqi_data:
Pm_Tag = {'0':u'优',
'1':u'良',
'2':u'轻度污染',
'3':u'中度污染',
'4':u'重度污染',
'5':u'严重污染',
'6':u'数据不正常'}
if (aqi_data >= 0 and aqi_data <= 50):
Tmp_tag = Pm_Tag['0']
elif (aqi_data >= 51 and aqi_data <= 100):
Tmp_tag = Pm_Tag['1']
elif (aqi_data >= 101 and aqi_data <= 150):
Tmp_tag = Pm_Tag['2']
elif (aqi_data >= 151 and aqi_data <= 200):
Tmp_tag = Pm_Tag['3']
elif (aqi_data >= 201 and aqi_data <= 300):
Tmp_tag = Pm_Tag['4']
elif (aqi_data >= 300):
Tmp_tag = Pm_Tag['5']
else:
Tmp_tag = Pm_Tag['6']
return Tmp_tag def Get_PmData():
try:
Pm_Json_Data = Get_AmericanEmbassy_PmData()
Convert_AmericanEmbassy_Data(Pm_Json_Data)
except:
Pm_Json_Data = Get_China_PmData()
Convert_China_Data(Pm_Json_Data) def Get_China_PmData():
City_list = {'0':'beijing','1': 'shanghai'}
Req_City = City_list['1']
Req_Token = '5j1znBVAsnSf5xQyNQyq'
Req_Ip = ''.join([random.randint(1,254).__str__(),'.',random.randint(1,254).__str__(),'.',random.randint(1,254).__str__(),'.',random.randint(1,254).__str__()])
Req_Url = ''.join(['http://www.pm25.in/api/querys/pm2_5.json?city=',Req_City,'&token=',Req_Token])
Req_headers = {'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0',
'X-Forwarded-For': Req_Ip}
Request_Result = requests.get(Req_Url,headers=Req_headers)
Request_Code = Request_Result.status_code
Request_Content = Request_Result.text
return Request_Content def Convert_China_Data(json_data):
if json_data:
Load_Json_Data = json.loads(json_data)
Check_Site_Length = Load_Json_Data.__len__()
print Load_Json_Data[0]["time_point"]
for i in xrange(Check_Site_Length):
Pm_Tag_Data = int(Load_Json_Data[i]["aqi"])
Tmp_tag = Convert_Des_Text(Pm_Tag_Data)
print Load_Json_Data[i]["position_name"],u'AQI:',Load_Json_Data[i]["aqi"],Tmp_tag def Get_AmericanEmbassy_PmData():
City_list = {'0':'Beijing','1': 'Shanghai'}
Req_City = City_list['1']
Req_Stime = int(round(time.time() * 1000)).__str__()
Req_Ip = ''.join([random.randint(1,254).__str__(),'.',random.randint(1,254).__str__(),'.',random.randint(1,254).__str__(),'.',random.randint(1,254).__str__()])
Req_Url = ''.join(['http://aqicn.org/aqicn/json/android/',Req_City,'/json?',Req_Stime])
Req_headers = {'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0',
'X-Forwarded-For': Req_Ip}
Request_Result = requests.get(Req_Url,headers=Req_headers)
Request_Code = Request_Result.status_code
Request_Content = Request_Result.text
return Request_Content def Convert_AmericanEmbassy_Data(json_data):
if json_data:
Load_Json_Data = json.loads(json_data)
#print Load_Json_Data["nearest"][0]["pol"]
print u'时间:',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(Load_Json_Data["time"])),u'AQI:',Load_Json_Data["aqi"]
Check_Site_Length = Load_Json_Data["nearest"].__len__()
for i in xrange(Check_Site_Length):
Pm_Tag_Data = int(Load_Json_Data["nearest"][i]["v"])
Tmp_tag = Convert_Des_Text(Pm_Tag_Data)
print Load_Json_Data["nearest"][i]["nna"],Load_Json_Data["nearest"][i]["v"],Tmp_tag if __name__ == '__main__':
main()

  

获取上海地区AQI质量数据Python脚本的更多相关文章

  1. python脚本监控股票价格钉钉推送

    关注股市,发家致富 问题:一天天盯着股市多累,尤其上班,还不能暴露,股票软件,红红绿绿,这么明显的列表页面,一看就知道在摸鱼.被领导发现饭碗就没了 解决:搞个脚本监听一下自己关注的股票,一到价格就发个 ...

  2. python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)

    昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...

  3. 除了binlog2sql工具外,使用python脚本闪回数据(数据库误操作)

    利用binlog日志恢复数据库误操作数据 在人工手动进行一些数据库写操作的时候(比方说数据修改),尤其是一些不可控的批量更新或删除,通常都建议备份后操作.不过不怕万一,就怕一万,有备无患总是好的.在线 ...

  4. 【转】用python比对数据库表数据的脚本

    最近在做一个数据库异构复制的项目,客户表示需要一个数据比对的工具,我就自己写了一个异构数据库的比对python脚本.这个比对脚本只能比对数量,不能比对具体的记录.使用的sql语句也是最基础的selec ...

  5. php外挂python脚本抓取ajax数据

    之前我写过一遍php外挂python脚本处理视频的文章.今天和大家分享下php外挂python实现输入关键字搜索的脚本 首先我们先来分析一波网站: http://www.dzdpw.com/s.php ...

  6. 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

    摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...

  7. Python脚本控制的WebDriver 常用操作 <十九> 获取测试对象的状态

    下面将使用webdriver来模拟测试中观察测试对象的状态的操作 测试用例场景 在web自动化测试中,我们需要获取测试对象的四种状态 是否显示.使用element.is_displayed()方法: ...

  8. Python脚本控制的WebDriver 常用操作 <十七> 获取测试对象的属性及内容

    测试用例场景 获取测试对象的内容是前端自动化测试里一定会使用到的技术.比如我们要判断页面上是否显示了一个提示,那么我们就需要找到这个提示对象,然后获取其中的文字,再跟我们的预期进行比较.在webdri ...

  9. Delphi中使用python脚本读取Excel数据

    Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

随机推荐

  1. 解码美国传奇网络券商:TradeStation

    证券时报记者 桂衍民 张欣然 5万客户,交易量却占美国网络券商8%,网络影响力已连续两年被评为全美前五名,说起美国网络证券,必提TradeStation. TradeStation的确是美国证券界的一 ...

  2. javaweb笔记5之请求编码问题

    post提交: 设置实体内容的编码:request.setCharacterEncoding("utf-8"); 注意:一定要在获取所有参数之前设置,否则设置无效! get方式提交 ...

  3. objective-c 加号 减号 - +

    “加号代表static”是错误的说法,可能跟你那样表达的人其实意思是:“前置加号的方法相当于Java 里面的静态方法”. 在Oc中,方法分为类方法和实例方法. 前置加号(+)的方法为类方法,这类方法是 ...

  4. Codeforces 544E Remembering Strings 状压dp

    题目链接 题意: 给定n个长度均为m的字符串 以下n行给出字符串 以下n*m的矩阵表示把相应的字母改动成其它字母的花费. 问: 对于一个字符串,若它是easy to remembering 当 它存在 ...

  5. Flashback Query、Flashback Table(快速闪回查询、快速闪回表)

    Flashback Query闪回查询 flashback query是基于undo表空间的闪回,与之相关的参数如下: SQL> show parameter undo NAME         ...

  6. [ArcGIS所需的补丁]ArcGIS 10.2.2 for Desktop联系Oracle(2014年10上个月发布)数据库崩溃

    环境的叙述性说明: ArcGIS 10.2.2 for Desktop.Oracle12.1.0.2 RAC 这仅仅是用户当时环境描写叙述.可是导致该问题的解决办法还包含很多其它的环境! 问题描写叙述 ...

  7. POJ 2049 Finding Nemo

    Finding Nemo Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 8631   Accepted: 2019 Desc ...

  8. ASP.NET面试

    1.net中读写数据库需要用到那些类?他们的作用都是什么?答:DataSet:数据存储器.DataCommand:执行语句命令.DataAdapter:数据的集合,用语填充.2.介绍一下什么是Code ...

  9. PHP 关于文件操作的简单介绍

    文件操作一直是Web程序员头疼的地方,而文件操作在CMS这样的系统中又是必须的.如今,PHP文件操作的函数内容已经非常强大,文件这部分也是学习PHP非常重要的一部分,希望大家不要忽略.这篇文章会简单介 ...

  10. (转)SQL Server中使用convert进行日期转换

    原文链接:http://www.cnblogs.com/weiqt/articles/1826847.html SQL Server中使用convert进行日期转换 一般存入数据库中的时间格式为yyy ...