从百度API中获取天气

  网络上看到鱼C的Python入门课程不错,语言风格也引人入胜,想做个实验,这东西到底好不好入门,

就把这个视频推荐给老婆,让他试着学一下,做足了老婆的工作。

这不,这两天她很上心,学得很有成就感,我也顺便帮他做了一个小Demo.如下,从百度的API中取天气情况并解析打印出来

代码如下,内有注释

 1 # -*- coding: utf-8 -*-
 2 ## 从网络上获取北京的天气,源码来源于网络,自己封装
 3 import sys, urllib, urllib.request, json
 4 
 5 #百度的公开API,可以调用的服务有很多
 6 url = 'http://apis.baidu.com/apistore/weatherservice/weather?citypinyin='
 7 
 8 city=input("请输入你想查询的城市的拼音,不用空格分隔:")
 9 
10 url+=city
11 
12 #创建URL请求
13 req = urllib.request.Request(url)
14 
15 #添加请求头,后面的apiKey,注册百度账号后可以从百度上得到
16 req.add_header("apikey", "你的apikey")
17 
18 #从网络上读取返回结果
19 resp = urllib.request.urlopen(req)
20 
21 #返回的结果是bytes
22 content = resp.read()
23 
24 if(content):
25     print("")
26     print("下面是从网络取到的原始字符串,可以用Notepad++格式化后查看:")
27     print(content)
28 
29 #默认用UTF-8格式解析,可以换成其他的编码解析
30 decodejson = json.loads(content.decode())
31 
32 #先不进行错误的判断
33 
34 #网上可以找到JSON解析的类型转换表
35 retData=decodejson["retData"]
36 print("\n下面是解析返回的天气结果:")
37 print(retData)
38 
39 print("")
40 print("城市:",retData["city"])
41 print("城市拼音:",retData["pinyin"])
42 print("城市代码:",retData["citycode"])
43 print("发布日期:",retData["date"])
44 print("发布时间:",retData["time"])
45 print("天气:",retData["weather"])
46 print("温度:",retData["temp"])
47 print("最低温度:",retData["l_tmp"])
48 print("最高温度:",retData["h_tmp"])
49 print("风向:",retData["WD"])
50 print("风力:",retData["WS"])
51 print("日出时间:",retData["sunrise"])
52 print("日落时间:",retData["sunset"])
53 
54 
55 print ("\n完成!谢谢使用\n")

 

posted @ 2015-07-24 17:16  心如止水-杜  阅读(1635)  评论(1编辑  收藏  举报
技术文章,欢迎转载,转载请注明出处。 杜鹤飞的技术博客 邮箱地址:dhf327@163.com