设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 10151|回复: 8
打印 上一主题 下一主题

新人求助贴———查天气小代码

[复制链接]

2

主题

0

好友

18

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2017-12-10 21:03:02 |只看该作者 |倒序浏览
本帖最后由 yiqiangzheshi 于 2017-12-11 20:45 编辑

在查询天气程序里,读取city.py里面内容,提示编码错误,可是已经在程序前声明了# -*- coding: utf-8 -*-还是报错,求高手解答,谢谢~另外URL怎么打不开呀

http://www.weather.com.cn/data/cityinfo/101010100.html   URL打开不能显示汉字。。。({"weatherinfo":{"city":"鍖椾含","cityid":"101010100","temp1":"-2鈩�","temp2":"16鈩�","weather":"鏅�","img1":"n0.gif","img2":"d0.gif","ptime":"18:00"}})这个样子的,为啥呀???
另外微信教程中http://m.weather.com.cn/data5/city.xml获取所有省/直辖市的编号,如“01|北京,02|上海,03|天津...这个网址我打开都没有显示,求解答,多谢》》》

550813048664055838.png (24.35 KB, 下载次数: 237)

550813048664055838.png

网页.JPG (42.42 KB, 下载次数: 241)

http://www.weather.com.cn/data/cityinfo/101010100.html

http://www.weather.com.cn/data/cityinfo/101010100.html

城市代码.JPG (75.94 KB, 下载次数: 248)

http://m.weather.com.cn/data5/city.xml

http://m.weather.com.cn/data5/city.xml

回复

使用道具 举报

0

主题

0

好友

114

积分

注册会员

Rank: 2

沙发
发表于 2017-12-11 09:24:05 |只看该作者
你city.py那个文件头也加了声明吗?
回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

板凳
发表于 2017-12-11 09:55:06 |只看该作者
本帖最后由 TED 于 2017-12-11 09:57 编辑

你在那个city.py的首行也添加上# -*- coding: utf-8 -*- 然后再试下
12.11.1.png
绿线标的第一条,指明weather.py, line4 第四行也就是from city import city 出错

蓝线标的第二条,说city.py line2有错,错误原因是Non-ASCII character存在,但是no encoding declared,所以你在city.py 加上这个# -*- coding: utf-8 -*- ,相当于把declare encoding,应该能解决问题

URL打不开是因为他需要根据你输入的城市名字,在city.py中按字典查找提取出citycode,把citycode添加到url链接尾部完成对城市天气的查询,现在city.py 中没法成功提取citycode,也就没法打开url了
回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

地板
发表于 2017-12-11 10:07:35 |只看该作者
braid 发表于 2017-12-11 09:24
你city.py那个文件头也加了声明吗?

同样的weather.py 和不加声明的city.py:
      python2跑不通,报错是说city.py没加声明
      python3就跑通了

这是什么原因啊?
回复

使用道具 举报

2

主题

0

好友

18

积分

新手上路

Rank: 1

5#
发表于 2017-12-11 10:43:36 来自手机 |只看该作者
braid 发表于 2017-12-11 09:24
你city.py那个文件头也加了声明吗?

谢谢谢谢,明白啦
回复

使用道具 举报

2

主题

0

好友

18

积分

新手上路

Rank: 1

6#
发表于 2017-12-11 10:45:56 来自手机 |只看该作者
TED 发表于 2017-12-11 09:55
你在那个city.py的首行也添加上# -*- coding: utf-8 -*- 然后再试下

绿线标的第一条,指明weather.py, lin ...

多谢多谢,真厉害
回复

使用道具 举报

2

主题

0

好友

18

积分

新手上路

Rank: 1

7#
发表于 2017-12-11 10:46:16 来自手机 |只看该作者
TED 发表于 2017-12-11 10:07
同样的weather.py 和不加声明的city.py:
      python2跑不通,报错是说city.py没加声明
      python3 ...

谢谢谢谢
回复

使用道具 举报

2

主题

0

好友

18

积分

新手上路

Rank: 1

8#
发表于 2017-12-11 20:43:39 |只看该作者
TED 发表于 2017-12-11 09:55
你在那个city.py的首行也添加上# -*- coding: utf-8 -*- 然后再试下

绿线标的第一条,指明weather.py, lin ...

您好,多谢您的解答~http://www.weather.com.cn/data/cityinfo/101010100.html   URL打开不能显示汉字。。。({"weatherinfo":{"city":"鍖椾含","cityid":"101010100","temp1":"-2鈩�","temp2":"16鈩�","weather":"鏅�","img1":"n0.gif","img2":"d0.gif","ptime":"18:00"}})这个样子的,为啥呀???
另外微信教程中http://m.weather.com.cn/data5/city.xml获取所有省/直辖市的编号,如“01|北京,02|上海,03|天津...这个网址我打开都没有显示,求解答,多谢》》》
回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

9#
发表于 2017-12-11 23:37:43 |只看该作者
yiqiangzheshi 发表于 2017-12-11 20:43
您好,多谢您的解答~http://www.weather.com.cn/data/cityinfo/101010100.html   URL打开不能显示汉字。 ...

把你代码的最后一句加上decode('utf-8').encode('gbk'):

print content.decode('utf-8').encode('gbk')

再试下
回复

使用道具 举报

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

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

GMT+8, 2024-5-13 22:15 , Processed in 0.033555 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部