Python3 XML 获取雅虎天气的实现方法


Posted in Python onFebruary 01, 2018

参考廖雪峰的Python教程,实现Linux Python3获取雅虎天气

#!/usr/bin/env python3
# coding: utf-8
import os
from datetime import datetime
from urllib import request 
from xml.parsers.expat import ParserCreate 
file_name = "weather.txt"
for root, dirs, files in os.walk("."):
 if file_name in files:
  os.remove(os.path.join(root, file_name))
def yahoo_weather(data):
 flag = False
 weather = {"city": "", "pubdate": "", "forecast": []}
 def start_element(name, attrs):
  if name == "yweather:location":
   weather["city"] = weather["city"] + attrs["city"]
   weather["city"] = weather["city"] + " " + attrs["country"]
  if name == "yweather:forecast":
   forecast = {}
   forecast["date"] = attrs["date"]
   forecast["day"] = attrs["day"]
   forecast["high"] = attrs["high"]
   forecast["low"] = attrs["low"]
   forecast["text"] = attrs["text"]
   weather["forecast"].append(forecast)
  if name == "pubDate":
   nonlocal flag
   flag = True
  
 def char_data(text):
  nonlocal flag
  if flag:
   weather["pubdate"] = text
   flag = False
 parser = ParserCreate()
 parser.StartElementHandler = start_element
 parser.CharacterDataHandler = char_data
 parser.Parse(data)
 return weather
def print_weather(weather):
 with open(file_name, "a") as f:
  s = "City: %s\nPub date: %s" %(weather["city"], weather["pubdate"])
  print("%s" %(weather["city"]))
  f.write(s + "\n")
  for forecast in weather["forecast"]:
   date = datetime.strptime(forecast["date"], "%d %b %Y").strftime("%Y-%m-%d")
   s = "Date: %s High: %s Low: %s Weather: %s" %(date, forecast["high"], forecast["low"], forecast["text"])
   f.write(s + "\n")
  f.write("\n")
citys = ["2151330", "2151849", "44418", "615702", "2514815"]
for city in citys:
 url = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%20"
 url = url + city
 url = url + "&format=xml"
 with request.urlopen(url, timeout=4) as f:
  weather = yahoo_weather(f.read())
  print_weather(weather)
print("weather conditions has written to %s" %(file_name))

以上这篇Python3 XML 获取雅虎天气的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python挑选文件夹里宽大于300图片的方法
Mar 05 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
深入解析Python中的urllib2模块
Nov 13 Python
Python设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
django静态文件加载的方法
May 20 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
使用python实现对元素的长截图功能
Nov 14 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
python实现Thrift服务端的方法
Apr 20 Python
python语言中pandas字符串分割str.split()函数
Aug 05 Python
Python命令行解析模块详解
Feb 01 #Python
python2.7到3.x迁移指南
Feb 01 #Python
Python Paramiko模块的使用实际案例
Feb 01 #Python
python中使用xlrd读excel使用xlwt写excel的实例代码
Jan 31 #Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 #Python
python通过elixir包操作mysql数据库实例代码
Jan 31 #Python
Django视图和URL配置详解
Jan 31 #Python
You might like
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
Prototype的Class.create函数解析
2011/09/22 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
前端开发之便利店收银系统代码
2019/12/27 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
外贸学院会计专业应届生求职信
2013/11/14 职场文书
集体婚礼证婚词
2014/01/13 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
七匹狼男装广告词
2014/03/21 职场文书
助学感谢信范文
2015/01/21 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
五年级语文教学反思
2016/03/03 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python