设为首页收藏本站

Crossin的编程教室

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

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

  [复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

31#
发表于 2016-2-27 21:22:34 |显示全部楼层
Kunz 发表于 2016-2-27 15:50
这个怎么弄啊??查了好多也没有查到解决办法

decode去掉,或者里面的参数换成utf-8或gbk,分别都试下
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

32#
发表于 2016-2-28 15:37:47 |显示全部楼层
Kunz 发表于 2016-2-27 15:50
这个怎么弄啊??查了好多也没有查到解决办法

看了下,这个网站是自己在内容上做了gzip压缩,所以你拿到的压缩过的内容,需要做一步解压。参考代码:
  1. from StringIO import StringIO
  2. import gzip
  3. import urllib2

  4. request = urllib2.Request('http://outofmemory.cn/')
  5. request.add_header('Accept-encoding', 'gzip')
  6. response = urllib2.urlopen(request)
  7. if response.info().get('Content-Encoding') == 'gzip':
  8.     buf = StringIO( response.read())
  9.     f = gzip.GzipFile(fileobj=buf)
  10.     data = f.read()
复制代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

33#
发表于 2016-3-1 11:41:33 |显示全部楼层
Kunz 发表于 2016-2-29 13:31
我的是3.x版本,StringIO不能直接用,我在网上找了下相关的方法,改写成上面这样的,但又出现新的问题了。 ...

示例里的网址要替换成你访问的网址。有可能python3的用法会不一样。你去查下3里面如何解压gzip。2和3差不多,只不过我基本都用2
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

34#
发表于 2016-3-11 22:49:13 |显示全部楼层
弹星者 发表于 2016-3-11 20:24
为何段代码一运行,放代码的目录下就会有一个city.pyc的文件出来呢

pyc是python自动编译的二进制代码,为了提升运行效率
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

35#
发表于 2016-3-17 11:59:59 |显示全部楼层
fengyulaike 发表于 2016-3-17 11:10
本人是win8系统,python 2.75 IDLE, 输入北京后,报错。city.py 和主程序都是cp936,错误如下
Traceback (mo ...

不知道你文件是用什么软件修改和保存的,看上去是文件被保存成了utf8格式。可以的话,选ANSI编码
windows控制台是cp936这个似乎不好改,所以你得确保文件格式和它一致。或者就是额外自己在代码里做一下解码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

36#
发表于 2016-3-17 23:30:46 |显示全部楼层
bigshots 发表于 2016-3-17 20:31
crossin老师好,
我用的是mac系统,在terminal用 python web.py编译出现以下问题,但是用IDLE没有问题
web. ...

不知道啊。看上去你mac上的python好像有点混乱,感觉装了不止一个版本?

如果不好解决,那就只能用 virtualenv 创建个虚拟环境,保证里面python的版本没问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

37#
发表于 2016-3-28 17:31:27 |显示全部楼层
212121212 发表于 2016-3-28 14:45
搞了一天了,就是不行,丑死了
# -*- coding: cp936 -*-
import urllib2

city.py 文件第一行要加上字符编码设定#coding:utf8。如果是windows,utf-8要改成cp936
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

38#
发表于 2016-3-29 13:12:04 |显示全部楼层
212121212 发表于 2016-3-28 20:10
放弃这一课了,各种报错,还有为什么要打那些#coding:utf8,进入下一课吧

因为代码里有中文,并且需要用这些中文来进行匹配,需要指定中文的编码格式
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

39#
发表于 2016-4-4 16:29:44 |显示全部楼层
fengyulaike 发表于 2016-4-3 04:53
非常感谢啊,才回来来看到这个,希望crossin先生可以把你的方法在前面提及一下,这地方我真是弄了好久, ...

恩,win的系统下需要改一下编码,刚改了下帖子,在第1课一开始加上了说明
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

40#
发表于 2016-4-10 16:20:23 |显示全部楼层
i7i1234567 发表于 2016-4-10 00:03
Crossin老师,感谢您的课程
查天气第二节里面,中文字符总是有问题。windows 7环境
1、代码中提示的汉字在c ...

BJ是啥?查天气这几课的回帖里有说到类似的情况。一般是没有把编码设成cp936。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-4 03:17 , Processed in 0.025087 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部