设为首页收藏本站

Crossin的编程教室

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

【Python 第45课】 查天气(3)

[复制链接]

0

主题

0

好友

18

积分

新手上路

Rank: 1

81#
发表于 2017-8-4 22:10:10 |只看该作者
不过我刚刚完成,还是良心啊
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

82#
发表于 2017-8-14 11:26:08 |只看该作者
楼主你好,我的代码按照你的抄了一遍,为啥不成功,我把云盘city.py 文件与代码文件放在一个文件夹下
结果显示Traceback (most recent call last):
  File "F:/python练习/9/9.py", line 4, in <module>
    from city import city
  File "F:/python练习/9\city.py", line 2
SyntaxError: Non-ASCII character '\xe5' in file F:/python练习/9\city.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

83#
发表于 2017-8-14 19:45:36 |只看该作者
无知少男 发表于 2017-8-14 11:26
楼主你好,我的代码按照你的抄了一遍,为啥不成功,我把云盘city.py 文件与代码文件放在一个文件夹下
结果 ...

代码第一行要加上
  1. #coding: gbk
复制代码
两个文件都要加
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

80

积分

注册会员

Rank: 2

84#
发表于 2017-8-24 14:12:08 |只看该作者
哈哈,我把字符串转换成字典成功了
查看天气3.png
回复

使用道具 举报

1

主题

0

好友

80

积分

注册会员

Rank: 2

85#
发表于 2017-8-24 14:30:17 |只看该作者

把字符串转换成字典.png
回复

使用道具 举报

1

主题

0

好友

80

积分

注册会员

Rank: 2

86#
发表于 2017-8-24 14:39:07 |只看该作者
本帖最后由 blueheart 于 2017-8-24 14:50 编辑
  1. # -*- coding: UTF-8 -*-
  2. import urllib2
  3. import json
  4. from city import city

  5. cityname = raw_input('你想查哪个城市的天气?\n'.decode('utf-8').encode('gbk'))
  6. print
  7. citycode = city.get(cityname.decode('gbk').encode('utf-8'))
  8. if citycode:
  9.         url = ('http://www.weather.com.cn/data/cityinfo/%s.html'%citycode)
  10.         print url
  11.         content = urllib2.urlopen(url).read().decode('utf-8').encode('gbk')
  12.         content1 = urllib2.urlopen(url).read()
  13.         data = json.loads(content1)
  14.         print type(content)
  15.         print type(data)
  16.         print data
  17.         print content
  18.         result = data['weatherinfo']
  19.         str_temp = ('%s\n%s ~ %s') % (
  20.             result['weather'],
  21.             result['temp1'],
  22.             result['temp2']

  23.         )
  24.         print str_temp
复制代码

摘取字典的字段.png (89.76 KB, 下载次数: 389)

摘取字典的字段.png

回复

使用道具 举报

1

主题

0

好友

80

积分

注册会员

Rank: 2

87#
发表于 2017-8-24 15:39:16 |只看该作者
本帖最后由 blueheart 于 2017-8-24 15:59 编辑
  1. # -*- coding: UTF-8 -*-
  2. import urllib2
  3. import json
  4. from city import city

  5. cityname = raw_input('你想查哪个城市的天气?\n'.decode('utf-8').encode('gbk'))
  6. citycode = city.get(cityname.decode('gbk').encode('utf-8'))
  7. if citycode:
  8.     try:
  9.         url = ('http://www.weather.com.cn/data/cityinfo/%s.html'%citycode)
  10.         print url
  11.         content = urllib2.urlopen(url).read().decode('utf-8').encode('gbk')
  12.         content1 = urllib2.urlopen(url).read()
  13.         data = json.loads(content1)
  14.         print type(content)
  15.         print type(data)
  16.         print data
  17.         print content
  18.         result = data['weatherinfo']
  19.         print result
  20.         str_temp = ('%s\n%s ~ %s') % (
  21.             result['weather'],
  22.             result['temp1'],
  23.             result['temp2']

  24.         )
  25.         print str_temp
  26.     except:
  27.             print '查询失败'
  28. else:
  29.     print '没有找到该城市'
复制代码

异常判断.png (110.01 KB, 下载次数: 382)

异常判断.png

异常判断1.png (19.15 KB, 下载次数: 386)

异常判断1.png

查询失败.png (97.72 KB, 下载次数: 382)

查询失败.png

回复

使用道具 举报

1

主题

0

好友

35

积分

新手上路

Rank: 1

88#
发表于 2017-9-21 10:04:48 |只看该作者
  1. # -*- coding: cp936 -*-
  2. import urllib2
  3. import json
  4. from city import city

  5. cityname = raw_input('你想查哪个城市的天气?\n')
  6. citycode = city.get(cityname)
  7. if citycode:
  8.         try:
  9.                 url = ('http://www.weather.com.cn/data/cityinfo/%s.html'
  10.                        % city_code)
  11.                 content = urllib2.urlopen(url).read()
  12.                 data = json.loads(content)
  13.                 result = data['weatherinfo']
  14.                 str_temp = ('%s\n%s ~ %s')%(
  15.                         result['weather'],
  16.                         result['temp1'],
  17.                         result['tmep2']
  18.                 )
  19.                 print str_temp
  20.         except:
  21.                 print '查询失败'
  22. else:
  23.         print '没有找到该城市'
复制代码
  1. Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
  2. Type "copyright", "credits" or "license()" for more information.
  3. >>> ================================ RESTART ================================
  4. >>>
  5. 你想查哪个城市的天气?
  6. 北京
  7. 查询失败
  8. >>> ================================ RESTART ================================
  9. >>>
  10. 你想查哪个城市的天气?
  11. 西安
  12. 查询失败
  13. >>> ================================ RESTART ================================
  14. >>>
  15. 你想查哪个城市的天气?
  16. 什么鬼
  17. 没有找到该城市
  18. >>>
复制代码
回复

使用道具 举报

1

主题

0

好友

35

积分

新手上路

Rank: 1

89#
发表于 2017-9-21 10:05:30 |只看该作者
chchch0720 发表于 2017-9-21 10:04

先生,city.py我用的您的代码,前面也加过了cp936
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

90#
发表于 2017-9-21 13:50:51 |只看该作者
chchch0720 发表于 2017-9-21 10:05
先生,city.py我用的您的代码,前面也加过了cp936

应该不是编码问题
把 try...except 去掉,或者在except里输出报错信息,看看报什么错。不然报错都被你的异常处理覆盖掉了,没法看出来什么问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-11-22 13:15 , Processed in 0.019037 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部