设为首页收藏本站

Crossin的编程教室

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

天气查询失败

[复制链接]

1

主题

0

好友

13

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2018-8-1 22:08:32 |只看该作者 |倒序浏览
在Python3.5.2下面运行以下这段代码总是反馈查询失败,求大神指点问题在哪里。注:编码utf8导致失败的可能性已排除,使用print(content.decode('utf8')),页面正常 {"weatherinfo":{"city":"上海","cityid":"101020100","temp1":"19℃","temp2":"23℃","weather":"大雨转中雨","img1":"n9.gif","img2":"d8.gif","ptime":"18:00"}}
---------------------------------------------------------------------------------------------------------------------------------
# -*- coding:utf8 -*-
from urllib import request
import json
from city import city

cityname=input('你想查哪个城市的天气?\n')
citycode=city.get(cityname)

if citycode:
    try:
        url=('http://www.weather.com.cn/data/cityinfo/%s.html'%citycode)
        content=str(urllib.request.urlopen(url).read())
        data=json.loads(content)
        result=data['weatherinfo']
        str_temp=('%s\n%s ~ %s')%(
            result['weather'],
            result['temp1'],
            result['temp2']
        )
        print(str_temp.decode('utf8'))
    except:
        print('查询失败')
else:
    print('没有找到该城市')

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2018-8-2 14:31:41 |只看该作者
把try去掉看报什么错
加了异常处理谁也看不出来。开发调试完了再加上
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

13

积分

新手上路

Rank: 1

板凳
发表于 2018-8-2 21:20:30 |只看该作者
crossin先生 发表于 2018-8-2 14:31
把try去掉看报什么错
加了异常处理谁也看不出来。开发调试完了再加上

去掉try之后报了这段,请问是什么意思?
Traceback (most recent call last):
  File "E:\Python learning\22.py", line 12, in <module>
    data=json.loads(content)
  File "E:\lib\json\__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "E:\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "E:\lib\json\decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2018-8-3 13:01:04 |只看该作者
得到的返回值不是json格式

这个你要调试,去看请求返回是什么、你发出的url是什么,你拿到的citycode是什么
我记得url应该是data3不是data
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

13

积分

新手上路

Rank: 1

5#
发表于 2018-8-3 22:18:27 |只看该作者
crossin先生 发表于 2018-8-3 13:01
得到的返回值不是json格式

这个你要调试,去看请求返回是什么、你发出的url是什么,你拿到的citycode是什 ...

谢谢crossin先生的热心解答,但还没找到问题所在,自己先摸索一下吧。
回复

使用道具 举报

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

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

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

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部