1
resposta

Erro para conectar com a API

Estou encontrando problemas para pegar os dados, está dando erro quando tento fazer o request.get(url).

import requests
import json

url = 'https://guilhermeonrails.github.io/api-restaurantes/restaurantes.json'
response = requests.get(url)

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

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)
else:
    print(f'O erro foi {response.status_code}')

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

1 resposta

Olá Sabrina! Tudo bem?

O erro SSL: CERTIFICATE_VERIFY_FAILED indica que o Python não conseguiu verificar o certificado SSL do servidor ao qual você está tentando se conectar, o que geralmente acontece quando o certificado é autoassinado ou não é confiável de alguma forma.

Uma solução possível é desabilitar a verificação do certificado SSL na sua requisição. Isso pode ser feito passando o parâmetro verify=False para a função requests.get(). Aqui está como você poderia modificar seu código:

import requests
import json

url = 'https://guilhermeonrails.github.io/api-restaurantes/restaurantes.json'
response = requests.get(url, verify=False)  # Desabilitando a verificação de SSL

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

    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)
else:
    print(f'O erro foi {response.status_code}')

No entanto, tenha em mente que desabilitar a verificação de SSL pode ser perigoso se você não confia na fonte da qual está baixando dados, pois isso pode te deixar vulnerável a ataques man-in-the-middle. Se você está apenas testando ou fazendo um projeto sem dados sensíveis, essa solução pode ser aceitável.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.