Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.5K
Vistas
Python: intento de decodificar JSON con un tipo MIME inesperado:

Recientemente cambié de solicitudes a aiohttp porque no podía usarlo en bucles asincrónicos.

El intercambio fue perfecto y todo va bien excepto por una cosa. Mi consola está llena de

 Attempt to decode JSON with unexpected mimetype:

y

 Attempt to decode JSON with unexpected mimetype: txt/html; charset=utf-8

Mi código tiene una lista de sitios a los que va también y toma JSON. Cada sitio es diferente, pero mi bucle es básicamente el mismo para cada uno de ellos. Lo he simplificado aquí:

 PoolName = "http://website.com" endpoint = "/api/stats" headers = "headers = {'content-type': 'text/html'}" #Ive tried "application/json" and no headers async with aiohttp.get(url=PoolName+endpoint, headers=headers) as hashrate: hashrate = await hashrate.json() endVariable = hashrate['GLRC']['HASH']

Funciona perfectamente, se conecta al sitio, toma el json y establece endVariable correctamente. pero por alguna razón

 Attempt to decode JSON with unexpected mimetype:

se imprime cada vez que pasa por el bucle. Lo cual es molesto porque imprime estadísticas en la consola y se pierden en los errores cada vez que toma un sitio json

¿Hay alguna forma de corregir este error o de ocultarlo?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Pase el tipo de contenido esperado al método json() :

 data = await resp.json(content_type='text/html')

o deshabilite la verificación por completo:

 data = await resp.json(content_type=None)
over 4 years ago · Santiago Trujillo Denunciar

0

aiohttp está tratando de hacer lo correcto y advertirle sobre un Content-Type incorrecto, lo que en el peor de los casos podría indicar que no está obteniendo datos JSON en absoluto, sino algo no relacionado, como el contenido HTML de una página de error.

Sin embargo, en la práctica, muchos servidores están mal configurados para enviar siempre el tipo MIME incorrecto en sus respuestas JSON, y aparentemente a las bibliotecas de JavaScript no les importa. Si sabe que está tratando con un servidor de este tipo, siempre puede silenciar la advertencia invocando json.loads usted mismo:

 import json # ... async with self._session.get(uri, ...) as resp: data = await resp.read() hashrate = json.loads(data)

Especificar Content-Type como lo intentó no hace ninguna diferencia porque solo afecta el Content-Type de su solicitud , mientras que el problema radica en el Content-Type de la respuesta del servidor, que no está bajo su control.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda