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

Luc*_*lho 1 python exception

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

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

这是错误消息:

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

JSONDecodeError: Expecting value
Run Code Online (Sandbox Code Playgroud)

这是一个小例子:

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)
Run Code Online (Sandbox Code Playgroud)

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

wpe*_*rcy 6

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

if response_pessoa.text is not None:
    pessoa_data = json.loads(response_pessoa.text)
    pessoa_file.write(pessoa_data)
Run Code Online (Sandbox Code Playgroud)

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

try:
    pessoa_data = json.loads(response_pessoa.text)
    pessoa_file.write(pessoa_data)
except JSONDecodeError:
    continue
Run Code Online (Sandbox Code Playgroud)