Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.4K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda