设为首页收藏本站

Crossin的编程教室

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

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

  [复制链接]

0

主题

0

好友

12

积分

新手上路

Rank: 1

81#
发表于 2016-8-16 20:58:22 |只看该作者
crossin先生,查天气的程序我检查了好多遍了,一直都报错。我把您在百度云分享的city.py文件放到编写程序相同的文件夹了,结果还是报错。。。
Traceback (most recent call last):
  File "D:\Program Files\python\weather.py", line 4, in <module>
    from city import city
  File "D:\Program Files\python\city.py", line 2
SyntaxError: Non-ASCII character '\xb1' in file D:\Program Files\python\city.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
请您帮忙看看哪里出错~谢谢您了~
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

82#
发表于 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
回复

使用道具 举报

0

主题

0

好友

12

积分

新手上路

Rank: 1

83#
发表于 2016-8-17 16:52:08 |只看该作者
crossin先生 发表于 2016-8-17 11:12
city.py 开头也要加上指定编码,下载的文件里好像默认没有,如果windows要改成gbk
#coding: gbk ...

谢谢crossin先生,按照您的方法我已经得出结果了,但是结果有点奇怪。
你想查哪个城市的天气?
北京

-2℃ ~ 16℃
我核对了网址都没有问题,在www.weather.com.cn网址上查询了此时北京的温度,也不是这么冷的天气,是网络延迟的原因吗?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

0

主题

0

好友

16

积分

新手上路

Rank: 1

85#
发表于 2016-8-18 11:15:36 |只看该作者
版主,我想用http://wthrcdn.etouch.cn/weather_mini?citykey=101010100这个新接口返回数据做这个练习,出现以下错误,网页内容只取出一个乱码字符帮忙看一下
访问这个url取数据
        url = 'http://wthrcdn.etouch.cn/weather_mini?citykey=101010100'
        content = urllib2.urlopen(url).read()
        print content
        print  type(content)
        data = json.loads(content)
报错如下:
======================== RESTART: C:\Python27\abc.py ========================
你想查哪个城市的天气?
北京
ヒ
<type 'str'>

Traceback (most recent call last):
  File "C:\Python27\abc.py", line 16, in <module>
    data = json.loads(content)
  File "C:\Python27\lib\json\__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded


回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

86#
发表于 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
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

87#
发表于 2016-8-25 15:21:12 |只看该作者
请问下,url2 = url % p_code 这个语句是啥意思,看不太明白,谢谢
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

88#
发表于 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
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

89#
发表于 2016-9-14 13:45:27 |只看该作者
你好啊,我想问一下,写入文件之前
result+='}'
是什么意思?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

90#
发表于 2016-9-14 22:19:56 |只看该作者
sheep 发表于 2016-9-14 13:45
你好啊,我想问一下,写入文件之前
result+='}'
是什么意思?

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

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

使用道具 举报

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

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

GMT+8, 2024-11-22 11:12 , Processed in 0.018155 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部