A ordem do código abaixo apresenta ERRO:
O bloco else está no local incorreto, pois faz parte da verificação se response.status_code foi 200 ou se deu algum erro e não do bloco de criação do arquivo json.
- veja o codigo correto no repositório do curso: https://github.com/alura-cursos/python-curso03/blob/aula_04/app.py
Abaixo fiz comentários no código sobre o erro.
Para finalizar, crie um arquivo .json para cada restaurante:
for nome_do_restaurante, dados in dados_restaurante.items():
nome_do_arquivo = f'{nome_do_restaurante}.json'
with open(nome_do_arquivo, 'w') as arquivo_restaurante:
json.dump(dados, arquivo_restaurante, indent=4)
# ERRO: o bloco else faz parte do bloco anterior
# deve ser removido esse bloco else daqui e adicionado no bloco acima, pois esse else serve para ver se o response.status_code foi diferente de 200.
else:
print(f'O erro foi {response.status_code}')
- Correção:
if response.status_code == 200:
dados_json = response.json()
dados_restaurante = {}
for item in dados_json:
nome_do_restaurante = item['Company']
if nome_do_restaurante not in dados_restaurante:
dados_restaurante[nome_do_restaurante] = []
dados_restaurante[nome_do_restaurante].append({
"item": item['Item'],
"price": item['price'],
"description": item['description']
})
# o bloco else está correto aqui, pois faz parte do if response.status_code == 200, reprensantando um erro no status code que nao é igual a 200:
else:
print(f'O erro foi {response.status_code}')