1
resposta

Fiz Assim

import requests
import json

# URL da API
url = 'https://guilhermeonrails.github.io/api-restaurantes/restaurantes.json'

try:
    # Faz a requisição HTTP
    response = requests.get(url)
    response.raise_for_status()  # Lança um erro para códigos de status 4xx/5xx

    # Converten a resposta para JSON
    dados_json = response.json()
    dados_restaurante = {}

    # Processar os dados
    for item in dados_json:
        nome_do_restaurante = item.get('Company', 'Desconhecido')

        if nome_do_restaurante not in dados_restaurante:
            dados_restaurante[nome_do_restaurante] = []

        dados_restaurante[nome_do_restaurante].append({
            "item": item.get('Item', 'Sem Nome'),
            "price": item.get('price', 'Preço Indisponível'),
            "description": item.get('description', 'Sem Descrição')
        })

    # Salva os dados em arquivos JSON separados por restaurante
    for nome_do_restaurante, dados in dados_restaurante.items():
        nome_do_arquivo = f'{nome_do_restaurante}.json'
        
        with open(nome_do_arquivo, 'w', encoding='utf-8') as arquivo_restaurante:
            json.dump(dados, arquivo_restaurante, indent=4, ensure_ascii=False)

    print("Arquivos JSON Gerados Com Sucesso!")

except requests.exceptions.RequestException as erro:
    print(f"Erro Ao Acessar A API: {erro}")

except json.JSONDecodeError:
    print("Erro Ao Decodificar O JSON Da Resposta!")

except Exception as erro:
    print(f"Ocorreu Um Erro Inesperado: {erro}")


print(dados_restaurante['McDonald’s'])

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Shayne. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Gostei da forma como você estruturou a requisição HTTP e organizou os dados em arquivos JSON separados por restaurante. Esse tipo de processamento ajuda bastante na organização e facilita o trabalho com grandes volumes de dados.

Uma curiosidade: você sabia que a biblioteca requests tem um método muito útil chamado get que permite enviar parâmetros diretamente na URL? Você pode usar o params para passar parâmetros em uma requisição GET. Veja como ficaria:


url = 'https://exemplo.com/api'
params = {'key': 'valor'}
response = requests.get(url, params=params)

Esse código envia parâmetros na URL da requisição. Nesse caso, a URL seria algo como https://exemplo.com/api?key=valor. Isso pode ser útil quando a API requer parâmetros adicionais.

Conte com o apoio do Fórum. Bons estudos.