设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第44课】 查天气(2)

  [复制链接]

0

主题

0

好友

8

积分

新手上路

Rank: 1

楼主
发表于 2016-4-29 09:36:31 |显示全部楼层
本帖最后由 issaclee 于 2016-4-29 10:51 编辑

老师及各位同学好:
我卡在这一课一天多了,win7环境,python2.7,两边都已设为cp936编码格式,但是content始终打印乱码,sys的默认编码是ascii,这个应该怎么解决呢?
我看了下,主要是接口返回来的内容肯定不是cp936格式的,具体是什么格式我也不清楚,这里打印不出来
# -*- coding: cp936 -*-
import urllib2
import json

from city import city
cityname = raw_input('你想查哪个城市的天气?\n')
citycode = city.get(cityname)
print citycode
if citycode:
   url = ('http://wthrcdn.etouch.cn/weather_mini?citykey=%s' % citycode)
   print url
   content = urllib2.urlopen(url).read()
   print content
   import sys
   print(sys.getdefaultencoding())



结果:
================================
>>>
你想查哪个城市的天气?
北京
101010100
http://wthrcdn.etouch.cn/weather_mini?citykey=101010100
ヒ
ascii
>>>

















回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

沙发
发表于 2016-4-29 11:39:50 |显示全部楼层
crossin先生 发表于 2016-4-29 11:02
发现 wthrcdn.etouch.cn 这个站的返回接口用了 gzip 压缩数据。所以你那个不是编码问题,而是数据被压缩 ...

老师,我访问http://www.weather.com.cn/data/cityinfo/%s.html这个依然不行
idle打印不出JSON数据,换了cmd也打印不出
用浏览器访问也是显示乱码
不清楚这个接口返回的到底是什么格式的数据,ide的编码格式肯定和接口返回数据的格式不匹配

cmd就是cp936的输出格式了,但是仍然无法正确输出数据
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-19 18:39 , Processed in 0.024867 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部