Crossin的编程教室

标题: 关于 【Python 第44课】 查天气(2) 的问题 [打印本页]

作者: k84822174    时间: 2018-7-19 13:16
标题: 关于 【Python 第44课】 查天气(2) 的问题
代码:
import urllib.request
import json
from city import city

cityname = input('city name\n')
citycode=city.get(cityname)
if citycode:
    url = ('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode)
    content = urllib.request.urlopen(url).read()
    print(content)
    print (json.dumps(json.loads(content), ensure_ascii=False) )
结果如下:
b'{"weatherinfo":{"city":"\xe5\x8c\x97\xe4\xba\xac","cityid":"101010100","temp1":"-2\xe2\x84\x83","temp2":"16\xe2\x84\x83","weather":"\xe6\x99\xb4","img1":"n0.gif","img2":"d0.gif","ptime":"18:00"}}'
{"weatherinfo": {"city": "北京", "cityid": "101010100", "temp1": "-2℃", "temp2": "16℃", "weather": "晴", "img1": "n0.gif", "img2": "d0.gif", "ptime": "18:00"}}

按照教程里的做法中文无法显示,下边的结果是百度出来的一种方法,如何像教学里的一样可以直接显示中文呢?

作者: chikei    时间: 2018-7-19 15:08
编码
content = str(urllib.request.urlopen(url).read(),'utf-8')
作者: crossin先生    时间: 2018-7-19 16:32
chikei 发表于 2018-7-19 15:08
编码
content = str(urllib.request.urlopen(url).read(),'utf-8')

直接print的是未解码的bytes。
print(content.decode('utf8'))




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5