设为首页收藏本站

Crossin的编程教室

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

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

[复制链接]

0

主题

1

好友

34

积分

新手上路

Rank: 1

楼主
发表于 2015-11-12 12:19:06 |显示全部楼层
本帖最后由 我是佩佩学姐 于 2015-11-12 13:54 编辑

Crossin先生,我是问题少年~又来求问,我把评论里的问题都找过了没法解决才提问的,出现以下问题:
1、if....else这块出问题,会提示:EOL While scanning string literal,必须把else语句去掉程序才可以正常执行
2、去掉else 之后,程序执行结果一直显示‘查询失败’,print result 结果正常。求老师指点
Idle 结果:
你想查询哪个城市的天气?
福州
101230101
http://www.weather.com.cn/data/cityinfo/101230101.html
{"weatherinfo":{"city":"福州","cityid":"101230101","temp1":"30℃","temp2":"18℃","weather":"多云","img1":"d1.gif","img2":"n1.gif","ptime":"08:00"}}
<type 'str'>
<type 'dict'>
{u'city': u'\u798f\u5dde', u'ptime': u'08:00', u'cityid': u'101230101', u'temp2': u'18\u2103', u'temp1': u'30\u2103', u'weather': u'\u591a\u4e91', u'img2': u'n1.gif', u'img1': u'd1.gif'}
  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. print citycode
  8. if citycode:
  9.     try:
  10.         url = ('http://www.weather.com.cn/data/cityinfo/%s.html'%citycode)
  11.         print url
  12.         content=urllib2.urlopen(url).read()
  13.         print content

  14.         data = json.loads(content)

  15.         print type(content)
  16.         print type(data)
  17.         result = data['weatherinfo']
  18.         print result                      #测试result
  19.         str_temp = u'%s\n%s~%s'%(result['weather'],result['temp1'],result['temp2'])
  20.         print str_temp
  21.     except:
  22.         print '查询失败'
  23. else:
  24.     print '没有找到该城市’
复制代码
回复

使用道具 举报

0

主题

1

好友

34

积分

新手上路

Rank: 1

沙发
发表于 2015-11-12 13:57:35 |显示全部楼层
crossin先生 发表于 2015-11-12 13:03
前一个问题是你最后一个引号不对吧,是中文引号
后面一个是,unicode直接%s转的话,会默认用ascii,所以 ...

谢谢先生~查天气(1)-(3)的问题都解决了哈。
回复

使用道具 举报

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

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

GMT+8, 2024-6-15 17:53 , Processed in 0.023820 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部