获取天气预报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, ...
随机推荐
- org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: c
//这个是 配置文件放错了地方 org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing ...
- 简单的数据库备份语句--Oracle+SQLSERVER
1. 工作中经常需要备份数据库表, 有时候经常需要baidu或者是询问,简单些一下.. 如果备份表不存在时: Oracle的语法 create table zhaobsh as select * fr ...
- 判断Excel版本信息
可以通过获取application对应的Version属性获取当前打开的Excel的版本信息(Application.Version).
- Bootstrap @Media分类
手机的屏幕比较小,宽度通常在600像素以下:PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768)设置相应的min-width和max-width值 所以响应式设计一般对600 ...
- webpack4.x相关笔记整理
概念 Webpack是一个模块打包机,它可以将我们项目中的所有js.图片.css等资源,根据其入口文件的依赖关系,打包成一个能被浏览器识别的js文件.能够帮助前端开发将打包的过程更智能化和自动化. W ...
- Python装饰器的深入理解
装饰器 #装饰器:本质上是函数,(装饰其他函数)就是为其他函数添加附加功能 #原则: 1.不能修改被装饰的函数的源代码 # 2.不能修改被装饰的函数的调用方式 #实现装饰器知识储备 #1.函数即变量 ...
- MySQL下载安装详情教程
1.下载MySQL数据库可以访问官方网站:https://www.mysql.com/ 2.点击DOWNLOADS模块下的Community模块下的MySQL Community Server进行下载 ...
- LinkedList 实现 Queue
package cn.com.example; import java.util.LinkedList; /** * Created by Jack on 2017/3/8. */ public cl ...
- codeforces 1051 D. Bicolorings (DP)
D. Bicolorings time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- codeforces369A
Valera and Plates CodeForces - 369A Valera is a lazy student. He has m clean bowls and k clean plate ...
