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

340
Vistas
Verifique la cadena en "response.content" generando "TypeError: se requiere un objeto similar a bytes, no 'str'"

Estoy tratando de ver si una oración está presente en la respuesta de una solicitud.

 import requests r = requests.get('https://www.eventbrite.co.uk/o/piers-test-16613670281') text = 'Sorry, there are no upcoming events' if text in r.content: print('No Upcoming Events')

Estoy teniendo el siguiente error:

 TypeError: a bytes-like object is required, not 'str'

No estoy muy seguro de por qué ocurre esto y cuál sería la solución.

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

0

r.content es un objeto de bytes pero text es str , por lo que no puede hacer la __contains__ ( in ) en otro directamente.

Puede (re)definir fácilmente el objeto de text para que sea una cadena de bytes:

 text = b'Sorry, there are no upcoming events'

Ahora, puede hacer if text in r.content: .

o puede usar r.text para obtener la representación de str directamente y usar el text tal cual (como str ).

over 4 years ago · Santiago Trujillo Denunciar

0

r.content devuelve un objeto similar a bytes en Python 3.x. Para verificar, haga:

 >>> type(r.content) <class 'bytes'>

Hay varias formas de solucionar su problema. Por ejemplo:

  1. Decodificar r.content a cadena : puede decode a cadena como:

     >>> text in r.content.decode() False
  2. Convierta r.content a cadena utf-8 como:

     >>> text in str(r.content, 'utf-8') False
  3. Defina su text para buscar como una cadena de bytes . Por ejemplo:

     text = b'Sorry, there are no upcoming events' # ^ note the `b` here

    Ahora puede simplemente usarlo con r.content como:

     >>> text in r.content False
  4. Use r.text en lugar de r.content para buscar la cadena, que como sugiere el documento :

    La codificación de texto adivinada por Solicitudes se usa cuando accede a r.text .

    Por lo tanto, puede simplemente hacer:

     >>> text in r.text False
over 4 years ago · Santiago Trujillo Denunciar

0

Las solicitudes devuelven un objeto de bytes, debe convertirlo en una cadena antes de realizar la entrada

Aquí hay una referencia sobre tipos integrados, uno de los cuales es bytes https://docs.python.org/3/library/stdtypes.html

la línea de código que estás buscando es algo así como,

 if text in r.content.decode(): print('No upcoming events')

por defecto, la decodificación asume utf-8, aunque puede pasar una codificación diferente si lo necesita.

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