我正在通过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()
有两种方法可以处理此问题。第一种是通过检查您要调用的值是否json.loads为None,如下所示:
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)