Crossin的编程教室

标题: 天气查询失败 [打印本页]

作者: 学搬砖的喵喵人    时间: 2018-8-1 22:08
标题: 天气查询失败
在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('没有找到该城市')


作者: crossin先生    时间: 2018-8-2 14:31
把try去掉看报什么错
加了异常处理谁也看不出来。开发调试完了再加上
作者: 学搬砖的喵喵人    时间: 2018-8-2 21:20
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)

作者: crossin先生    时间: 2018-8-3 13:01
得到的返回值不是json格式

这个你要调试,去看请求返回是什么、你发出的url是什么,你拿到的citycode是什么
我记得url应该是data3不是data
作者: 学搬砖的喵喵人    时间: 2018-8-3 22:18
crossin先生 发表于 2018-8-3 13:01
得到的返回值不是json格式

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

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




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