1
resposta

requisições HTTP e dados externos

import requests
import json

url = 'https://guilhermeonrails.github.io/api-restaurantes/restaurantes.json'

response = requests.get(url)
print(response)

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']
        })

else:
    print(f'O erro foi {response.status_code}')

#print(dados_restaurante['McDonald’s'])

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)
1 resposta

Oi, Ricardo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

O seu código tá bem estruturado ao fazer a requisição com requests, verificar o status_code e organizar os dados dos restaurantes em um dicionário antes de gerar arquivos JSON separados. Essa organização por nome do restaurante mostra um bom entendimento de manipulação de dados em Python e facilita bastante o uso posterior dessas informações.

Uma dica interessante para o futuro é usar o método get() de dicionários, que ajuda a acessar chaves sem causar erro caso elas não existam. Isso deixa o código mais seguro ao trabalhar com dados vindos de APIs.


dados = {"nome": "Ana", "idade": 25}

nome = dados.get("nome")
cidade = dados.get("cidade", "Nao informado")

print(nome)
print(cidade)

Nesse exemplo, get() tenta acessar uma chave no dicionário. Se ela não existir, retorna um valor padrão, evitando erro no programa.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!