python – ValueError:没有JSON对象可以解码,但是正面
发布时间:2020-12-20 11:26:34 所属栏目:Python 来源:网络整理
导读:我正在浏览一些URL,我可以从我正在使用的API中获取大部分数据. * Imgur API.然而,当它找到之前已经发布但最终被删除的图像时,它仍然显示正向URL获取响应(代码200),当我使用时 j1 = json.loads(r_positive.text) 我收到此错误: http://imgur.com/gallery/cJP
我正在浏览一些URL,我可以从我正在使用的API中获取大部分数据. * Imgur API.然而,当它找到之前已经发布但最终被删除的图像时,它仍然显示正向URL获取响应(代码200),当我使用时
j1 = json.loads(r_positive.text) 我收到此错误: http://imgur.com/gallery/cJPSzbu.json <Response [200]> Traceback (most recent call last): File "image_poller_multiple.py",line 61,in <module> j1 = json.loads(r_positive.text) File "/usr/lib/python2.7/json/__init__.py",line 326,in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py",line 366,in decode obj,end = self.raw_decode(s,idx=_w(s,0).end()) File "/usr/lib/python2.7/json/decoder.py",line 384,in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded 我怎样才能“获取”j1变量中的错误呢?我想使用条件结构来解决问题并避免我的程序崩溃.就像是 if j1 == ValueError: continue else: do_next_procedures() 解决方法
您需要使用try,而不是:
try: j1 = json.loads(r_positive.text) except ValueError: # decoding failed continue else: do_next_procedures() 请参阅Python教程中的Handling Exceptions. 真正发生的是您被重定向到该URL并且您获得了图像页面.如果您正在使用请求来获取JSON,请查看the response history: if r_positive.history: # more than one request,we were redirected: continue else: j1 = r_positive.json() 或者你甚至可以禁止重定向: r = requests.post(url,allow_redirects=False) if r.status == 200: j1 = r.json() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |