从百度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")

 

你可能感兴趣的:(api)