stringa python in byte

Devi fornire una stringa alla libreria re se vuoi manipolare un oggetto usando un modello di stringa. Se provi a utilizzare uno schema di stringa su un oggetto memorizzato utilizzando i "byte" tipo di dati, incontrerai il "TypeError: impossibile utilizzare uno schema di stringa su un oggetto simile a byte" error.

Questa guida spiega cosa significa questo errore e perché potresti riscontrarlo. Ti guideremo attraverso un esempio di questo errore in modo che tu possa vedere quali passaggi intraprendere per risolvere l’errore.

TypeError: impossibile utilizzare uno schema di stringa su un oggetto simile a byte

Gli oggetti Byte contengono una sequenza di singoli byte. Sono immutabili, come le stringhe, il che significa che non possono essere cambiate. Un oggetto byte viene in genere restituito quando si legge un file binario o quando si utilizza una libreria come "richiesta" per recuperare dati da un sito web.

Quando utilizzi la libreria re, devi lavorare utilizzando byte o oggetti. Non è possibile specificare modelli di stringa per un oggetto byte e viceversa.

Se si lavora con dati in byte, il programma deve specificare un modello regex in byte. Se stai usando l’espressione regolare con le stringhe, fornisci un modello di espressione regolare basato su stringhe.

Uno scenario di esempio

Stiamo per scrivere un programma che recuperi il titolo di una pagina web. Collaboriamo con il sito Web Python.Engineering per questo tutorial.

Per iniziare, importiamo le due librerie di cui avremo bisogno per costruire il nostro programma: urllib e re.

La libreria urllib ci consente di effettuare richieste web e la libreria re ci dà la possibilità di utilizzare le espressioni regolari nel nostro programma.

L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio di un bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.

Successivamente, facciamo un < una href="/what-is-http/">richiesta web alla homepage di Python.Engineering:

Il programma recupera il contenuto di la home page di Python.Engineering. Questi dati vengono letti utilizzando il metodo read() che fa parte del metodo urlopen(). Archiviamo questi dati nella cartella "res" variabile.

Ora che abbiamo i dati dal nostro programma, usa il metodo search() per scoprire il contenuto del tag nella pagina web che abbiamo interrogato. il tag contiene il titolo di una pagina web.<br></p> <p>Per trovare il titolo della pagina web, usa il metodo <code>re.search()</code>:<br></p> <p>Il nostro programma cercherà i contenuti del tag <title>. Il nostro programma quindi stampa il titolo della pagina Web sulla console.Utilizziamo il <a href="/it_it-python-f-string/">metodo .format()</a> per aggiungere questo titolo alla nostra stringa. <br></p> <p>Eseguiamo il nostro programma e vediamo se funziona:<br></p> <p>Il nostro programma non viene eseguito completamente.</p><p>Il valore di "home" (la risposta dalla nostra pagina web) è un oggetto bytes ma il pattern che usiamo per trovare il titolo di una pagina web è una stringa. Ciò causa un errore perché non possiamo abbinare i modelli di stringa agli oggetti byte.<br></p> <p>Ci sono due modi in cui possiamo risolvere questo problema.</p> <h3>Soluzione n.1: convertire il modello di stringa in byte ;</h3> <p>Dobbiamo convertire lo schema di stringa che usiamo in un oggetto bytes. Possiamo farlo utilizzando sia il "b" parola chiave o il metodo <code>bytes()</code>:<br></p> <p>Il primo metodo per utilizzare il "b" la parola chiave è più comune perché è più facile da leggere. Ora che abbiamo convertito il nostro modello di stringa in byte, possiamo eseguire il nostro codice:<br></p> <p>Il nostro codice restituisce il testo che corrisponde alla nostra query.<br> </p> </a></div><p>Ora che abbiamo la risposta dell’espressione regolare, possiamo analizzarla in modo che appaia solo come una stringa nel nostro codice.L’analisi dei dati dell’espressione regolare non rientra nell’ambito di questo tutorial. </p> <h3>Soluzione n. 2: decodificare i dati della pagina Web</h3> <p>In alternativa, potremmo scegliere di decodificare i dati della nostra pagina Web per renderla una stringa. Ciò è utile se prevedi una stringa per altre parti del tuo codice per funzionare.<br></p> <p>Possiamo decodificare i dati della nostra pagina web modificando la riga di codice in cui apriamo la pagina web:<br></p> <p>Questo codice decodificherà la risposta dalla nostra richiesta web in modo che possiamo trattare la risposta come una stringa. Dovresti sostituire "utf-8" con il metodo di e ncodifica la pagina web che stai richiedendo.<br></p> <p>Possiamo quindi utilizzare un modello di stringa per cercare il tag del titolo. Non è necessario convertire il nostro modello in un oggetto byte perché "home" sarà un valore stringa.</p> <p>Eseguiamo il nostro codice e vediamo cosa succede: <br></p><p>"Il Karma di carriera è entrato nella mia vita quando ne avevo più bisogno e mi ha aiutato rapidamente ad abbinarmi a un bootcamp. Due mesi dopo la laurea, ho trovato il lavoro dei miei sogni in linea con i miei valori e obiettivi nella vita!"</p> <p class="testimonial-section-faint-1">Venus, Software Engineer presso Rockbot</p> <p>Il "TypeError: non può usare uno schema di stringa su un byte -come oggetto" viene generato un errore quando si tenta di far corrispondere un modello di stringa a un oggetto memorizzato utilizzando il tipo di dati bytes.<br></p> <p>Puoi correggere questo errore convertendo il tuo modello di stringa in un oggetto byte o convertendo i dati con cui stai lavorando in un oggetto stringa.<br></p> </a></div><p>Ora sei pronto per correggere questo <a href="/it_it-how-long-to-learn-python/">errore Python come un professionista</a> !</p>