处于兴趣,写了一个遍历指定城市五天内的天气预报,并转为华氏度显示。

把城市名字写到一个列表里这样可以方便的添加城市。并附有详细注释 import requests

import json

#定义一个函数 避免代码重写多次。

def gettemp(week,d_or_n,date):

wendu=data['result']['weather'][week]['info'][d_or_n][date] #对字典进行拆分

return int(wendu)

def getft(t):

ft=t*1.8+32

return float(str(ft)[0:4])

cities=['保定','北京','上海','武汉','郑州','齐齐哈尔'] #这里可以指定想要遍历的城市

url='http://api.avatardata.cn/Weather/Query?key=68e75677978441f6872c1106175b8673&cityname=' #用于和cities里的城市进行字符串拼接

low=0

high=2

for city in cities:

r = requests.get(url+city) # 最基本的GET请求

#print(r.status_code) 获取返回状态200是成功

#print(r.text) 打印解码后的返回数据

data=json.loads(r.text) #返回的json数据被转换为字典类型

#print(type(data)) data 的数据类型是字典 所以可以按照字典操作(字典里的列表就按列表操作)

print(city,'近五天天气预报:')

for i in range(5):

week='周'+str(data['result']['weather'][i]['week']) #对字典类型进行逐个拆分 如列表 元组等。

daylow=gettemp(i,'day',low)

dlf=getft(daylow)

dayhigh=gettemp(i,'day',high)

dhf=getft(dayhigh)

nightlow=gettemp(i,'night',low)

nlf=getft(nightlow)

nighthigh=gettemp(i,'night',high)

nhf=getft(nighthigh)

print(week,'白天气温:',daylow,'~',dayhigh,'摄氏度','晚上气温:',nightlow,'~',nighthigh,'摄氏度')

print(' ','白天气温:',dlf,'~',dhf,'华氏度','晚上气温:',nlf,'~',nhf,'华氏度')

print('\n')

{"result":{"realtime":{"wind":{"windspeed":null,"direct":"西风","power":"3级","offset":null},"time":"16:00:00","weather":{"humidity":"27","img":"0","info":"晴","temperature":"13"},"dataUptime":"1490517362","date":"2017-03-26","city_code":"101090201","city_name":"保定","week":"0","moon":"二月廿九"},"life":{"date":"2017-3-26","info":{"kongtiao":["开启制暖空调","您将感到有些冷,可以适当开启制暖空调调节室内温度,以免着凉感冒。"],"yundong":["较适宜","天气较好,但考虑风力较强且气温较低,推荐您进行室内运动,若在户外运动注意防风并适当增减衣物。"],"ziwaixian":["中等","属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。"],"ganmao":["较易发","昼夜温差较大,较易发生感冒,请适当增减衣服。体质较弱的朋友请注意防护。"],"xiche":["较适宜","较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。"],"wuran":null,"chuanyi":["冷","天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。"]}},"weather":[{"date":"2017-03-26","week":"日","nongli":"二月廿九","info":{"dawn":null,"day":["0","晴","17","西北风","3-4 级","06:12"],"night":["0","晴","2","西南风","微风","18:36"]}},{"date":"2017-03-27","week":"一","nongli":"二月三十","info":{"dawn":["0","晴","2","西南风","微风","18:36"],"day":["0","晴","15","南风","微风","06:11"],"night":["7","小雨","3","南风","微风","18:37"]}},{"date":"2017-03-28","week":"二","nongli":"三月初一","info":{"dawn":["7","小雨","3","南风","微风","18:37"],"day":["1","多云","15","南风","微风","06:09"],"night":["0","晴","3","南风","微风","18:38"]}},{"date":"2017-03-29","week":"三","nongli":"三月初二","info":{"dawn":["0","晴","3","南风","微风","18:38"],"day":["0","晴","18","南风","微风","06:08"],"night":["0","晴","3","北风","微风","18:39"]}},{"date":"2017-03-30","week":"四","nongli":"三月初三","info":{"dawn":["0","晴","3","北风","微风","18:39"],"day":["0","晴","17","北风","微风","06:06"],"night":["0","晴","3","北风","微风","18:40"]}}],"pm25":{"key":"Baoding","show_desc":"0","pm25":{"curPm":"34","pm25":"14","pm10":"26","level":"1","quality":"优","des":"空气很好,可以外出活动"},"dateTime":"2017年03月26日16时","cityName":"保定"},"isForeign":0},"error_code":0,"reason":"Succes"}

这是返回的一个json数据,可以通过json格式化工具查看会方便一些,通过json.loads其实都是字典列表的一些嵌套,而想要取的数据 在字典里"result"里, 而data['result'] 又是一个字典,

{'life': {'date': '2017-3-26', 'info': {'yundong': ['较适宜', '天气较好,但考虑风力较强且气温较低,推荐您进行室内运动,若在户外运动注意防风并适当增减衣物。'], 'xiche': ['较适宜', '较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。'], 'ganmao': ['较易发', '昼夜温差较大,较易发生感冒,请适当增减衣服。体质较弱的朋友请注意防护。'], 'ziwaixian': ['中等', '属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。'], 'chuanyi': ['冷', '天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。'], 'wuran': None, 'kongtiao': ['开启制暖空调', '您将感到有些冷,可以适当开启制暖空调调节室内温度,以免着凉感冒。']}}, 'weather': [{'date': '2017-03-26', 'week': '日', 'info': {'dawn': None, 'night': ['0', '晴', '2', '西南风', '微风', '18:36'], 'day': ['0', '晴', '17', '西北风', '3-4 级', '06:12']}, 'nongli': '二月廿九'}, {'date': '2017-03-27', 'week': '一', 'info': {'dawn': ['0', '晴', '2', '西南风', '微风', '18:36'], 'night': ['7', '小雨', '3', '南风', '微风', '18:37'], 'day': ['0', '晴', '15', '南风', '微风', '06:11']}, 'nongli': '二月三十'}, {'date': '2017-03-28', 'week': '二', 'info': {'dawn': ['7', '小雨', '3', '南风', '微风', '18:37'], 'night': ['0', '晴', '3', '南风', '微风', '18:38'], 'day': ['1', '多云', '15', '南风', '微风', '06:09']}, 'nongli': '三月初一'}, {'date': '2017-03-29', 'week': '三', 'info': {'dawn': ['0', '晴', '3', '南风', '微风', '18:38'], 'night': ['0', '晴', '3', '北风', '微风', '18:39'], 'day': ['0', '晴', '18', '南风', '微风', '06:08']}, 'nongli': '三月初二'}, {'date': '2017-03-30', 'week': '四', 'info': {'dawn': ['0', '晴', '3', '北风', '微风', '18:39'], 'night': ['0', '晴', '3', '北风', '微风', '18:40'], 'day': ['0', '晴', '17', '北风', '微风', '06:06']}, 'nongli': '三月初三'}], 'isForeign': 0, 'pm25': {'pm25': {'des': '空气很好,可以外出活动', 'curPm': '34', 'level': '1', 'pm10': '26', 'pm25': '14', 'quality': '优'}, 'show_desc': '0', 'key': 'Baoding', 'dateTime': '2017年03月26日16时', 'cityName': '保定'}, 'realtime': {'city_name': '保定', 'weather': {'info': '晴', 'img': '0', 'humidity': '27', 'temperature': '13'}, 'week': '0', 'wind': {'windspeed': None, 'power': '3级', 'offset': None, 'direct': '西风'}, 'city_code': '101090201', 'date': '2017-03-26', 'dataUptime': '1490517362', 'time': '16:00:00', 'moon': '二月廿九'}}

相同的方法取 data['result']['weather'] 这又是一个元组,

[{'nongli': '二月廿九', 'info': {'night': ['0', '晴', '2', '西南风', '微风', '18:36'], 'dawn': None, 'day': ['0', '晴', '17', '西北风', '3-4 级', '06:12']}, 'week': '日', 'date': '2017-03-26'}, {'nongli': '二月三十', 'info': {'night': ['7', '小雨', '3', '南风', '微风', '18:37'], 'dawn': ['0', '晴', '2', '西南风', '微风', '18:36'], 'day': ['0', '晴', '15', '南风', '微风', '06:11']}, 'week': '一', 'date': '2017-03-27'}, {'nongli': '三月初一', 'info': {'night': ['0', '晴', '3', '南风', '微风', '18:38'], 'dawn': ['7', '小雨', '3', '南风', '微风', '18:37'], 'day': ['1', '多云', '15', '南风', '微风', '06:09']}, 'week': '二', 'date': '2017-03-28'}, {'nongli': '三月初二', 'info': {'night': ['0', '晴', '3', '北风', '微风', '18:39'], 'dawn': ['0', '晴', '3', '南风', '微风', '18:38'], 'day': ['0', '晴', '18', '南风', '微风', '06:08']}, 'week': '三', 'date': '2017-03-29'}, {'nongli': '三月初三', 'info': {'night': ['0', '晴', '3', '北风', '微风', '18:40'], 'dawn': ['0', '晴', '3', '北风', '微风', '18:39'], 'day': ['0', '晴', '17', '北风', '微风', '06:06']}, 'week': '四', 'date': '2017-03-30'}]

接着取元组里的字典,逐步拆分即可获得想要的数据。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持聚米学院!

python读取文件求气温平均值_使用python遍历指定城市的一周气温相关推荐

  1. python读取文件路径中有中文_转 python 读取中文文件名/中文路径

    原博文 2015-03-13 22:22 − python直接读取中文路径的文件时失败,可做如下处理: inpath = 'D:/work/yuanxx/在线导航/驾车导航/walk_log/2013 ...

  2. python求数组平均值_用python求一个数组的和与平均值的实现方法

    用python求一个数组的和与平均值的实现方法 如下所示: # coding = GBK a =[1,2,3,4,5] sum=0 b = len(a) print("这个数组的长度为:&q ...

  3. python关于文件的编程题_《Python编程》源代码文件

    压缩包 : bbc59749e0028c3f1ab3a1c9a762a6d.rar 列表 <Python编程>源代码文件/.gitignore <Python编程>源代码文件/ ...

  4. python读取千万级数据库数据类型_解决python读取几千万行的大表内存问题

    Python导数据的时候,需要在一个大表上读取很大的结果集. 如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出 解决的方法: 1)使用SSCu ...

  5. python读取文件求气温平均值_计算一周内的平均气温。Python

    我是一个新的编码员,想知道是否有人能告诉我下面的代码出了什么问题.我正试图回答下面的问题,却被卡住了.如果有人能帮忙那就太棒了.Write a program that asks the user t ...

  6. python读取文件求气温平均值_python文件中的年和月数据的平均温度

    我有一个数据文件,其中有一些特定格式的数据,在处理时有一些多余的行要忽略.我需要处理这些数据,并根据这些数据计算一个值.在 样本数据:Average monthly temperatures in D ...

  7. python读取文件最后几行_如何用python获取文件的最后一行,文件可能会比较大

    展开全部 #!/usr/bin/env python import os import sys def get_last_n_lines(logfile, n): blk_size_max = 409 ...

  8. python求素数平均值_用python怎么求素数

    如何用python求100以内的素数? 质数(primenumber)又称素数,有无限个.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,如:2.3.5.7.11.13.1 ...

  9. python读取csv前100条_使用python中的csv reader只读取前N行csv文件

    我将一些csv文件的第二列中包含的文本添加到一个列表中,以便稍后对列表中的每个项目执行情绪分析.我的代码目前完全适用于大型csv文件,但是我对列表中的项目执行的情感分析花费了太长时间,这就是为什么我只 ...

最新文章

  1. cmt跟踪算法 matlab_“水上大疆”招聘——雷达算法工程师
  2. 我和奇葩的故事之失联第七天
  3. 万兆以太网测试仪应该具备什么功能
  4. 软件构造学习笔记-第十一周
  5. leetcode 771. 宝石与石头(set)
  6. Rust+Yew之hello world
  7. oracle mysql 数据类型对比_Oracle、SQL Server、MySQL数据类型对比
  8. Java中的Class类
  9. 30天敏捷结果(10):发挥你的优势
  10. 写 node.js 用什么编辑器?
  11. Android ViewPage使用
  12. 计算机网络.第三节课.笔记.信道复用、频分复用、统计时分复用、波分复用、时分复用、码分复用、双绞线带宽、双绞线
  13. 从源码分析Android的Glide库的图片加载流程及特点
  14. 数据库上机实验三(游标)
  15. wpf matlab混编,WPF(C#)与MATLAB混合编程
  16. python re模块下载_python: re模块
  17. 小姑娘说,我全靠水群,挤进了安全圈
  18. “影子公司” 汇润成功入主深航
  19. princeton 本科cos318操作系统教程-1引言
  20. 角色扮演类大型网络游戏C++后台和纯C语言后台的差异

热门文章

  1. RAC中ASM磁盘组管理
  2. 360°视频的视频编解码器性能评估中的常见测试条件和软件参考配置
  3. ArrayList扩容原理
  4. 物联网,昨天在人间已是巅,今天还想要上青天!
  5. java程序的运行机制详细分析
  6. XX项目测试策略思维导图
  7. 在阿里云上装黑苹果(1):黑苹果基础
  8. python代码图片头像_Python玩微信——头像组字篇
  9. 广西2021高考成绩位次查询,2020年广西高考成绩位次排名及一分一段表查询
  10. WebUploader 实现大文件的断点续传功能