获取天气预报API5_统计最容易生病时间段
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)
医药统计项目联系QQ:231469242
All rights reversed
commercial use not allowed
北京数据
重庆数据
美国Rockwell
澳大利亚悉尼
印尼雅加达
London 英国
# -*- coding: utf-8 -*-
# All rights reversed, commercial use not allowed
#! python3
# quickWeather.py - Prints the current weather for a location from the command line.
"""
k(开尔文)=273.15+T(摄氏度) json返回的是开尔文温度
Created on Sat Apr 16 10:24:28 2016 @author: daxiong
""" import json, requests,sys,pylab,numpy #城市名称
cityName="beijing"
#城市ID号
cityID="2038349"
#我的免费appID
appID="0383ae59663e14ab5a6855d5b6ad5d00"
#获取时间段数
cnt="30"
# Download the JSON data from OpenWeatherMap.org's API
url="http://api.openweathermap.org/data/2.5/forecast/city?id=%s&APPID=%s&cnt=%s"%(cityID,appID,cnt)
response = requests.get(url)
response.raise_for_status() # Load JSON data into a Python variable.
weatherData = json.loads(response.text) # Print weather descriptions.
#主要获取weatherData---weather---main和description信息
w = weatherData['list']
print('Current weather in %s:' % (cityName)) temperature_list=[]
cnt_list=[]
time_list=[]
for i in range(int(cnt)):
time=w[i]['dt_txt']
print(time)
main=w[i]['weather'][0]['main']
description=w[i]['weather'][0]['description']
temp=w[i]['main']['temp']
temp_Chinese=temp-273.15
temp_Chinese_round=round(temp_Chinese,2)
temperature_list.append(temp_Chinese_round)
cnt_list.append(i+1)
time_list.append(str(time))
print(main, '-',description,'-',temp_Chinese_round,"摄氏度")
print() barwidth=0.5
pylab.bar(cnt_list,temperature_list,width=barwidth,color='y')
pylab.xlabel("times")
pylab.ylabel('temperature')
pylab.title("%s temperature prediction(x axis every 3 hours per tickt)"%cityName)
pylab.show() #计算最高气温和最低气温
list_temperature_time=zip(temperature_list,time_list)
dict_temperature_time=dict(list_temperature_time)
max_temp=max(dict_temperature_time.keys())
min_temp=min(dict_temperature_time.keys())
print("最高气温:",max_temp,'摄氏度','-',dict_temperature_time[max_temp])
print("最低气温:",min_temp,'摄氏度','-',dict_temperature_time[min_temp]) #温差列表,用于统计哪天人最容易生病
temperature_difference_list=[]
for i in range(len(temperature_list)-1):
temperature_difference=temperature_list[i+1]-temperature_list[i]
temperature_difference_list.append(temperature_difference) time_difference_list=[]
for i in range(len(time_list)-1):
time_difference=time_list[i]+'-'+time_list[i+1]
time_difference_list.append(time_difference) list_temperature_time_difference=zip(temperature_difference_list,time_difference_list)
dict_temperature_time_difference=dict(list_temperature_time_difference)
max_temp_difference=max(dict_temperature_time_difference.keys())
min_temp_difference=min(dict_temperature_time_difference.keys())
print("最高温差:",round(max_temp_difference,2),'摄氏度','-',dict_temperature_time_difference[max_temp_difference])
print("最低温差:",round(min_temp_difference,2),'摄氏度','-',dict_temperature_time_difference[min_temp_difference]) #最容易生病时间段,取温差绝对值最大的key
if abs(max_temp_difference)>abs(min_temp_difference):
ill_likely_day=dict_temperature_time_difference[max_temp_difference]
else:
ill_likely_day=dict_temperature_time_difference[min_temp_difference]
print("最容易生病时间段:",ill_likely_day) #统计温差又高到底排序的时间段
#温差绝对值列表
absolute_temperature_difference_list=[abs(i) for i in temperature_difference_list]
list_temperature_time_difference=zip(absolute_temperature_difference_list,time_difference_list)
dict_absolute_temperature_time_difference=dict(list_temperature_time_difference)
sorted_temperature_time_difference=sorted(dict_absolute_temperature_time_difference.items(),reverse=True) '''
# Compute location from command line arguments.
if len(sys.argv) < 2:
print('Usage: quickWeather.py location')
sys.exit()
location = ' '.join(sys.argv[1:]) len(weatherData)
Out[21]: 5
for i in weatherData:
print(i)
city #城市信息
cod #内部参数
cnt #预测天数
list #信息列表,主要获取weatherData---weather---main和description信息
message #内部参数 weatherData
Out[23]:
{'city': {'coord': {'lat': 30.25, 'lon': 107.75},
'country': 'CN',
'id': 1814905,
'name': 'Chongqing Shi',
'population': 0,
'sys': {'population': 0}},
'cnt': 1,
'cod': '200',
'list': [{'clouds': {'all': 44},
'dt': 1460775600,
'dt_txt': '2016-04-16 03:00:00',
'main': {'grnd_level': 937.55,
'humidity': 98,
'pressure': 937.55,
'sea_level': 1025.81,
'temp': 288.16,
'temp_kf': 0.4,
'temp_max': 288.16,
'temp_min': 287.759},
'rain': {'3h': 0.01},
'sys': {'pod': 'd'},
'weather': [{'description': 'light rain',
'icon': '10d',
'id': 500,
'main': 'Rain'}],
'wind': {'deg': 267.501, 'speed': 1.63}}],
'message': 0.0109} #pylab.hist(temperature_list)
pylab.plot(cnt_list,temperature_list,'ro')
pylab.xlabel("times")
pylab.ylabel('temperature')
pylab.title("%s temperature prediction"%cityName)
pylab.show()
'''
https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章)
获取天气预报API5_统计最容易生病时间段的更多相关文章
- [整]C#获取天气预报信息(baidu api)包括pm2.5
/// <summary> /// 获取天气预报信息 /// </summary> /// <returns></returns> public Bai ...
- java获取天气预报的信息
运行效果: 主要功能: 1,jsp页面输入省份和城市 根据条件获取当地的天气信息 2,java代码 利用第三方的省份和城市的路径地址 本工程主要实现java获取天气预报的信息步骤1,创建工程weath ...
- Android 获取天气预报
界面布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...
- php从气象局获取天气预报并保存到服务器
思路:1.打开网页时读取中国气象网的接口得到每个城市的该日json:2.解析并保存到mysql:3.客户端访问mysql得到数据集. 所包含的技巧: 进度条.flush()问题.mysql.xml.p ...
- 获取分组后统计数量最多的纪录;limit用法;sql执行顺序
CREATE TABLE emp(id INT PRIMARY KEY,NAME VARCHAR(11),dep_id INT ,salary INT); CREATE TABLE dept(id I ...
- springboot 采用HttpClient获取天气预报 异常及原因
采用httpClient调用天气预报地址获取出现异常 2018-10-04 15:18:25.815 ERROR 10868 --- [nio-8080-exec-5] o.a.c.c.C.[.[.[ ...
- php获取本周、本月、本年的时间段
这是在TP框架里面自己用到的一个获取周.月.年时间段的方法.
- Ajax的封装,以及利用jquery的ajax获取天气预报
1.Ajax的封装 function ajax(type,url,param,sync,datetype,callback){//第一个参数是获取数据的类型,第二个参数是传入open的url,第三个是 ...
- vc中获取磁盘IO统计计数
想知道进程读写磁盘的情况,可以获取当前进程或指定进程的IO计数. #include <Windows.h> int get_io_bytes(ULONGLONG * read_bytes, ...
随机推荐
- 同步手绘板——PC端实现画板
同步显示上设想通过bitmap传值再在web端显示,查阅资料发现有点难以实现,所以在web也生成一个画板,实现与android端类似功能,由android传递路径集合到web端显示.
- 面向对象课程 - 寒假第四次作业 - C++计算器项目计算部分
C++计算器项目计算部分 零.项目源文件地址 地址:Calculator 2.0 一.项目信息相关 项 目 : Calculator 版 本 : 2 . 0 日 期 : 2016 . 4 . 14 实 ...
- iOS开发设计多个target
创建target有两种方式, 1>.是通过新建target可以通过File-->New-->Target,然后选择其中一个模板来创建,app类型的target进行创建 2>.另 ...
- Docker for windows 入门一(下载安装)
预安装条件,可以查阅官方文档,本人是Win10 x64(必要条件)教育版+开启Hyper-V(Feature特性),具体可参考云栖社区的文章: https://yq.aliyun.com/articl ...
- dotnet core的下载地址 以及sdk和runtime的 version 简单说明
1. dotnet core 2.1 的下载地址 https://dotnet.microsoft.com/download/dotnet-core/2.1 2. dotnet core 2.2 的下 ...
- C++的内存分区
C++的内存划分为栈区.堆区.全局区/静态区.字符串常量和代码区. 栈区 由系统进行内存的管理. 主要存放函数的参数以及局部变量.在函数完成执行,系统自行释放栈区内存,不需要用户管理.整个程序的栈区的 ...
- Angular $cookieStore简单应用
angular.module('cookieStoreExample', ['ngCookies']) .controller('ExampleController', ['$cookieStore' ...
- 关于python项目路径导入自己写的库出错的一点思考
其实也是在写自己项目的时候遇到的,以前也遇到了但是一直采取的是回避的策略,这次总算弄清楚所以总结一下. 这个项目的顶级目录是medivac,他本身是一个python模块. 熟悉flask的人都知道,在 ...
- Java之StringBuffer使用方法
package basic; //StringBuffer的使用方法,用于保存频繁修改的字符串 public class StringBufferDemo { public static void m ...
- c-lodop云打印实现手机打印 JS语句打印
Lodop和c-lodop目前只能安装到windows操作系统上,但是其他操作系统可通过向C-Lodop安装的电脑发送打印任务,实现手机广域网或局域网打印,打印语句也是简单的JS语句,可以轻松实现云打 ...