如何避免JSONDECODEROR?
我有一个POST请求,它返回一个JSON。如果用户正在搜索不存在的内容,则JSON为空。如何避免错误消息并打印类似“无结果”的内容 错误消息:如何避免JSONDECODEROR?,json,python-3.x,dictionary,Json,Python 3.x,Dictionary,我有一个POST请求,它返回一个JSON。如果用户正在搜索不存在的内容,则JSON为空。如何避免错误消息并打印类似“无结果”的内容 错误消息: File "/usr/lib/python3.7/json/__init__.py", line 348, in loads return _default_decoder.decode(s) File "/usr/lib/python3.7/json/decoder.py", line 337, in
File "/usr/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s) File "/usr/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
代码://它运行良好,除非返回的JSON为空//
导入请求
导入json
从私人进口有效载荷,标准
r=请求。会话()
url\u登录名https://somesite.com/login.php'
url\u搜索=https://somesite.com/data.php?jsons=true'
req1=r.post(url\U登录,数据=有效负载)
req2=r.post(url\u搜索,数据=criterias)
data=json.loads(req2.text)
release='release\u name'
对于在数据['results']中发布:
打印(发布['release_name']
你问过如何避免JSONDecodeError
。答案是抓住它
导入请求
导入json
从私人进口有效载荷,标准
r=请求。会话()
url\u登录名https://somesite.com/login.php'
url\u搜索=https://somesite.com/data.php?jsons=true'
req1=r.post(url\U登录,数据=有效负载)
req2=r.post(url\u搜索,数据=criterias)
尝试:
data=json.loads(req2.text)
release='release\u name'
对于在数据['results']中发布:
打印(release['release_name'])#您的代码没有右括号
除了ValueError作为e:#捕获子类JSONDecodeError
打印(“无结果”)
打印(f“req.text={req.text}”)
打印(e)
请显示代码添加了代码@MikeSlinnThanks。请显示req2.text
的值。我相信它没有您希望的值。事实上它有。正如我提到的,它是一个JSON文件,具有dict类型。还有键和值。问题是是否有空的JSON(用户输入了不存在的内容)然后我收到了错误。我想打印“无结果”,而不是错误。非常感谢!我正在寻找这个!