设为首页收藏本站

Crossin的编程教室

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

【Python 第46课】 查天气(4)

  [复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

31#
发表于 2016-8-9 17:05:18 |显示全部楼层
yan 发表于 2016-8-9 12:23
请问这个报错是为什么

你把content4给print出来,看看是什么问题
我记得有些城市可能会请求失败,如果是这个原因,就跳过失败的城市
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

32#
发表于 2016-8-17 11:12:46 |显示全部楼层
编程小菜鸟 发表于 2016-8-16 20:58
crossin先生,查天气的程序我检查了好多遍了,一直都报错。我把您在百度云分享的city.py文件放到编写程 ...

city.py 开头也要加上指定编码,下载的文件里好像默认没有,如果windows要改成gbk
#coding: gbk
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

33#
发表于 2016-8-18 09:40:18 |显示全部楼层
编程小菜鸟 发表于 2016-8-17 16:52
谢谢crossin先生,按照您的方法我已经得出结果了,但是结果有点奇怪。
你想查哪个城市的天气 ...

嗯,这个最初的接口,现在好像已经不更新数据了。所以只能练习请求,不能真正用。
你看第一课开始的说明里,有给新的接口
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

34#
发表于 2016-8-19 11:08:27 |显示全部楼层
zgd1219 发表于 2016-8-18 11:15
版主,我想用http://wthrcdn.etouch.cn/weather_mini?citykey=101010100这个新接口返回数据做这个练习,出 ...

应该是网页被gzip压缩过,看下 查天气1 开头的说明。
或者改用 requests 包来抓取
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

35#
发表于 2016-8-26 16:11:43 |显示全部楼层
guixianyang 发表于 2016-8-25 15:21
请问下,url2 = url % p_code 这个语句是啥意思,看不太明白,谢谢

这个就是字符串格式化,只不过这里用变量替代了字符串,类似于:
'hello %s' % 'world'
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

36#
发表于 2016-9-14 22:19:56 |显示全部楼层
sheep 发表于 2016-9-14 13:45
你好啊,我想问一下,写入文件之前
result+='}'
是什么意思?

开头还有个 result = 'city = {\n'

这是为了拼出代码的字符串
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

37#
发表于 2016-10-18 22:06:45 |显示全部楼层
Tony 发表于 2016-10-18 18:10
Crossin 先生你好:
我按照上面的操作,写了如下代码:我直接输出print content结果是一串乱码
然后我看保 ...

你要看是全部乱码还是只有中文乱码。
全部乱码是因为 gzip 压缩了。解决方法见论坛帖子查天气1开头的说明。
或者改用 requests 模块来抓取
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

38#
发表于 2016-10-29 17:07:55 |显示全部楼层
moredear 发表于 2016-10-29 07:16
Crossing 先生

python版本3.5,mac系统

python3这里读到了一个bytes类型,你要先转成str
content1 = content1.decode('utf8')
然后再来做 split

不过我这里查询这个接口发现已经是失败了,你那里居然还可以请求到数据……
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

39#
发表于 2016-11-18 14:32:55 |显示全部楼层
yyn 发表于 2016-11-18 10:09
老师,我仿照下面的代码输入之后,并没有输出东西,连乱码都没有

#coding : cp936

不应该什么都没有啊,至少也有报错
你发截图来看看。

另外你可以改用 requests 包,会比较好用。编辑器也可以换成pycharm,然后它的编码设置成 utf8
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

40#
发表于 2016-12-19 13:09:59 |显示全部楼层
study@python 发表于 2016-12-19 12:55
crossin先生,代码第25行,是不是应改为“line = "    '%s': '101%s',\n" % (name, code)”
...

你拿到最后一层,应该是类似这样的结果:
020101|101020100
后面那部分就是完整代码,所以不需要再加101
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-5 12:06 , Processed in 0.043454 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部