当前位置:  开发笔记 > 编程语言 > 正文

如果json请求为“ none”,则继续执行“ for”

如何解决《如果json请求为“none”,则继续执行“for”》经验,为你挑选了1个好方法。

我正在通过API请求下载json。

问题是这些请求中的一些请求什么都不返回(无),然后显示错误消息,循环停止。

这是错误消息:

raise JSONDecodeError("Expecting value", s, err.value) from None

JSONDecodeError: Expecting value

这是一个小例子:

pessoa_file = open('pessoa_file.txt', 'a', encoding='utf-8')
for x in range(n_pessoas):

    pessoa = jsonresponse['Pessoa'][x]

    response_pessoa = requests.get(pessoa)

    pessoa_data = json.loads(response_pessoa.text)

    pessoa_file.write(pessoa_data)

我想知道如何忽略错误或写点东西。我对python不太熟悉,但是我知道R。我认为它应该类似于try()tryCatch()



1> wpercy..:

有两种方法可以处理此问题。第一种是通过检查您要调用的值是否json.loadsNone,如下所示:

if response_pessoa.text is not None:
    pessoa_data = json.loads(response_pessoa.text)
    pessoa_file.write(pessoa_data)

或者您可以将代码的这一部分包装在try / except块中,如下所示:

try:
    pessoa_data = json.loads(response_pessoa.text)
    pessoa_file.write(pessoa_data)
except JSONDecodeError:
    continue

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有