Crossin的编程教室

标题: 新人求助贴———查天气小代码 [打印本页]

作者: yiqiangzheshi    时间: 2017-12-10 21:03
标题: 新人求助贴———查天气小代码
本帖最后由 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, 下载次数: 359)

550813048664055838.png

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

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

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

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

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

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


作者: braid    时间: 2017-12-11 09:24
你city.py那个文件头也加了声明吗?
作者: TED    时间: 2017-12-11 09:55
本帖最后由 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了

作者: TED    时间: 2017-12-11 10:07
braid 发表于 2017-12-11 09:24
你city.py那个文件头也加了声明吗?

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

这是什么原因啊?

作者: yiqiangzheshi    时间: 2017-12-11 10:43
braid 发表于 2017-12-11 09:24
你city.py那个文件头也加了声明吗?

谢谢谢谢,明白啦
作者: yiqiangzheshi    时间: 2017-12-11 10:45
TED 发表于 2017-12-11 09:55
你在那个city.py的首行也添加上# -*- coding: utf-8 -*- 然后再试下

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

多谢多谢,真厉害
作者: yiqiangzheshi    时间: 2017-12-11 10:46
TED 发表于 2017-12-11 10:07
同样的weather.py 和不加声明的city.py:
      python2跑不通,报错是说city.py没加声明
      python3 ...

谢谢谢谢
作者: yiqiangzheshi    时间: 2017-12-11 20:43
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|天津...这个网址我打开都没有显示,求解答,多谢》》》
作者: TED    时间: 2017-12-11 23:37
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')

再试下




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5