Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.5K
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!