Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

NO SE PUEDE CARGAR LA API CON JSON DESDE LA WEB : https://servicodados.ibge.gov.br/api/v2/censos/nomes/ranking/?sexo=M

Hola, no puedo cargar los datos de la api con json, me da error de request, por favor reevean el link de donde sacan los datos, porque no me deja exportarlo y no puedo seguir con el curso

nombre_m = pd.read_json("https://servicodados.ibge.gov.br/api/v2/censos/nomes/ranking/?sexo=M")

nombre_m

error -->

SSLError Traceback (most recent call last) /usr/lib/python3.10/urllib/request.py in do_open(self, http_class, req, **http_conn_args) 1347 try: -> 1348 h.request(req.get_method(), req.selector, req.data, headers, 1349 encode_chunked=req.has_header('Transfer-encoding'))

23 frames SSLError: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1007)

During handling of the above exception, another exception occurred:

URLError Traceback (most recent call last) /usr/lib/python3.10/urllib/request.py in do_open(self, http_class, req, **http_conn_args) 1349 encode_chunked=req.has_header('Transfer-encoding')) 1350 except OSError as err: # timeout error -> 1351 raise URLError(err) 1352 r = h.getresponse() 1353 except:

URLError: <urlopen error [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1007)>

3 respuestas
solución!

Hola estimado estudiante

Es un problema en la página web y no en el código, el certificado ssl de colab no acepta el certificado de este site, por eso que fuera de colab sí funciona pero dentro de Colab no, la solución es reemplazar el link del json de lectura.

Reemplazar

nombres_m = pd.read_json("https://servicodados.ibge.gov.br/api/v1/censos/nomes/ranking?sexo=M&qtd=200")
nombres_f = pd.read_json("https://servicodados.ibge.gov.br/api/v1/censos/nomes/ranking?sexo=F&qtd=200")

Por:

df = pd.read_json("https://raw.githubusercontent.com/ElProfeAlejo/tratamiento_datos_python/main/ranking.json")
nombres_m = df[df['sexo'] == 'M'].sample(200)
nombres_f = df[df['sexo'] == 'F'].sample(200)

Si este post te ayudó, por favor, marca como solucionado ✓.

Hola Christian Velasco !

Muchas gracias por la respuesta, probare con esos códigos, de todas formas utilicé otra pagina web con otra base de datos para lograr el mismo resultado y poder seguir con el curso y no atrasarme! Saludos!

Muy agradecido con la respuesta, me pasa exactamente lo mismo