- 帖子
- 2
- 精华
- 0
- 积分
- 16
- 阅读权限
- 10
- 注册时间
- 2016-9-9
- 最后登录
- 2016-9-22
|
因为用的是notepad++的编辑器,尝试着如crossin先生说的一样编码直接设置成gbk,但是没有成功。运行总是显示查询失败,后来尝试打印出每个步骤的结果,然后查资料找了json的loads使用注意事项找出了原因,就是如果传入json的字符串不是utf-8编码的话,就无法调用json的loads方法,因为前面content只有转换成gbk才能显示,所以这一步要指定字符编码。编码如下:- # -*- coding:utf-8 -*-
- import urllib2
- import json
- from city import city
- cityname = raw_input('你想查哪里城市的天气?\n'.decode('utf-8').encode('gbk'))
- citycode = city.get(cityname.decode('gbk').encode('utf-8'))
- if citycode:
- try:
- url = ('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode)
- content = urllib2.urlopen(url).read().decode('utf-8').encode('gbk')
- data = json.loads(content,encoding = 'gbk')
- result = data['weatherinfo']
- str_temp = ('%s\n%s ~ %s') % (result['weather'], result['temp1'], result['temp1'])
- print str_temp
- except:
- print u'查询失败'
- else:
- print u'没有找到该城市'
复制代码 |
|