找到两个很实用的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℃
相关连接: