python 查天气学习笔记1(crossin的编程教室)

找到两个很实用的pycharm快捷键:1、多行注释、取消注释:ctrl+/  2、多行缩进:选中多行+tab  取消缩进:选中多行+shift+tab

 

这个程序的作用:输入城市名字,从天气网页找到相关内容打印出来。

用两个模块,urllib和json,过程中出现几个问题

1、python3 不能直接输入urllib模块,它的init函数是空的(python3->lib->urllib->-init-)。

可以 import urllib.request, 就可以用urlopen函数了。

2、不小心把json.loads 写成load,运行时出现错误。原来json.load()是用来读取文件的,即,将文件打开然后就可以直接读取。json.loads()是用来读取字符串的,即,可以把文件打开,可用readline()读取一行,再用loads一行。

3、由于代码中有中文,所以必须在文件第一行声明编码。又因为我们需要从控制台获取输入,所以这两者的编码必须一致,否则就查不到城市编码。window系统如果查不到,需要在代码和city.py最前面加一句:

# -*- coding: gbk -*-

 

主代码如下:提前将city.py 放到项目文件夹

 

import urllib.request
import json

cityname=input('请输入城市名字:')
citycode=city.get(cityname)
if citycode:
    url = ('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode)
    content = urllib.request.urlopen(url).read()
    print(type(content)) #  bytes
    data = json.loads(content)
    print(type(data))  #dict
    result = data['weatherinfo']
    str_temp = ('%s\n%s ~ %s') % (
        result['weather'],
        result['temp1'],
        result['temp2']
    )
    print(str_temp)

结果:请输入城市名字:天津
<class 'bytes'>
<class 'dict'>
多云
19℃ ~ 28℃

相关连接:

常见问题:https://mp.weixin.qq.com/s?__biz=MjM5MDEyMDk4Mw==&mid=2650167365&idx=1&sn=9e68b84236a957db171e1991c7ff2983&chksm=be4b553d893cdc2b47446ce31b2817ff4900d41fd7f5afa6d86334e11e9d79d5f28345ccbdcf&scene=21

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值