网络上看到鱼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(" 下面是解析返回的天气结果:") 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 (" 完成!谢谢使用 ")