cadena de python a bytes

Debe proporcionar una cadena a la biblioteca re si desea manipular un objeto usando un patròn de cadena. Si intenta utilizar un patròn de cadena en un objeto que se almacena utilizando los " bytes " tipo de datos, encontrará el " TypeError: no se puede usar un patròn de cadena en un objeto de tipo bytes " error.

Esta guìa habla sobre lo que significa este error y por qué puede encontrarlo. Lo guiaremos a través de un ejemplo de este error para que pueda ver qué pasos seguir para resolver el error.

TypeError: no se puede usar un patròn de cadena en un objeto similar a bytes

Los objetos Bytes contienen una secuencia de bytes individuales. Son inmutables, como cadenas, lo que significa que no se pueden cambiar. Por lo general, un objeto de bytes se devuelve cuando lee un archivo binario o cuando usa una biblioteca como " request " para recuperar datos de un sitio web.

Cuando utiliza la biblioteca re , debe trabajar utilizando bytes u objetos. No puede especificar patrones de cadena para un objeto de bytes y viceversa.

Si está trabajando con datos de bytes, su programa debe especificar un patròn de expresiòn regular en bytes. Si está utilizando expresiones regulares con cadenas, proporcione un patròn de expresiones regulares basado en cadenas.

Un escenario de ejemplo

Vamos a escribir un programa que recupere el tìtulo de una página web. Trabajamos con el sitio web de Career Karma para este tutorial.

Para comenzar, importe las dos bibliotecas que necesitaremos para construir nuestro programa: urllib y re.

La biblioteca urllib nos permite realizar solicitudes web y la biblioteca re nos da la capacidad de usar expresiones regulares en nuestro programa.

El 81% de los participantes dijeron que se sentìan más seguros sobre sus perspectivas laborales después de asistir a un bootcamp. Asigne a un bootcamp hoy.

El graduado promedio de bootcamp pasò menos de seis meses en la transiciòn de carrera, desde comenzar un bootcamp hasta encontrar su primer trabajo.

A continuaciòn, hacemos un < una href = "/ what-is-http/">solicitud web a la página de inicio de Career Karma:

El programa recupera el contenido de la página de inicio de Career Karma. Estos datos se leen utilizando el método read () que es parte del método urlopen () . Almacenamos estos datos en el " res " variable .

Ahora que tenemos los datos de nuestro programa, use el método search () para averiguar el contenido de la etiqueta "title" en la página web que hemos consultado. La etiqueta contiene el tìtulo de una página web.

Para encontrar el tìtulo de la página web, utilice el método re.search () :

Nuestro programa buscará el contenido de la etiqueta "title & gt ;. Luego, nuestro programa imprime el tìtulo de la página web en la consola. Usamos el método .format () para agregar este tìtulo a nuestra cadena. & Nbsp;

Ejecutemos nuestro programa y veamos si funciona:

Nuestro programa no se ejecuta completamente.

El valor de " home " (la respuesta de nuestra página web) es un objeto de bytes, pero el patròn que usamos para encontrar el tìtulo de una página web es una cadena. Esto provoca un error porque no podemos hacer coincidir los patrones de cadena con los objetos de bytes.

Hay dos formas de resolver este problema.

Soluciòn n. ¬∞ 1: convertir el patròn de cadena en bytes & nbsp ;

Tenemos que convertir el patròn de cadena que usamos en un objeto de bytes. Podemos hacer esto usando la " b " palabra clave o el método bytes () :

El primer método de uso de " b " La palabra clave es más com√∫n porque es más fácil de leer. Ahora que hemos convertido nuestro patròn de cadena en bytes, podemos ejecutar nuestro còdigo:

Nuestro còdigo devuelve el texto que coincide con nuestra consulta.

Ahora que tenemos la respuesta de expresiones regulares, podemos analizarla para que aparezca como una cadena en nuestro còdigo. El análisis de los datos de expresiones regulares está fuera del alcance de este tutorial.

Soluciòn # 2: Decodificar los datos de la página web

Alternativamente, podrìamos optar por decodificar los datos de nuestra página web para convertirlos en una cadena. Esto es √∫til si espera una cadena para otras partes de su còdigo para que funcione.

Podemos decodificar los datos de nuestra página web modificando la lìnea de còdigo donde abrimos la página web:

Este còdigo decodificará la respuesta de nuestra solicitud web para que podamos tratar la respuesta como una cadena. Debe reemplazar " utf-8 " con el método de e ncodificando los usos de la página web que está solicitando.

Entonces podemos usar un patròn de cadena para buscar la etiqueta del tìtulo. No es necesario convertir nuestro patròn en un objeto de bytes porque " home " será un valor de cadena.

Ejecutemos nuestro còdigo y veamos qué sucede: & nbsp;

"Career Karma entrò en mi vida cuando más lo necesitaba y rápidamente me ayudò a combinar con un bootcamp. Dos meses después de graduarme, encontré el trabajo de mis sue√±os que se alineaba con mis valores y metas en la vida! "

Venus, ingeniero de software de Rockbot

El " TypeError: no se puede usar un patròn de cadena en un bytes -como objeto " se genera un error cuando intenta hacer coincidir un patròn de cadena con un objeto que se almacena usando el tipo de datos de bytes.

Puede corregir este error convirtiendo su patròn de cadena en un objeto de bytes, o convirtiendo los datos con los que está trabajando en un objeto de cadena.

Ahora está listo para corregir este error de Python como un profesional !

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method