n° 219
Novembre 2017
Dicembre 12, 2017, 08:41:09 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Problema encoding Python  (Letto 6707 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
ciclonite
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 21


Mostra profilo E-mail
« inserita:: Agosto 26, 2015, 09:06:53 »

Salve a tutti ragazzi,
Sto diventando pazzo con un problema di encoding su una lista python.
la lista è la seguente (esempio):
[u'tecnico', u'Nome: rick Col\u0148\n', u'Indirizzo: vicolo tra\xa0211/12CAP: 313, comune: verona\xa0']
Come posso fare a codificare i caratteri in maniera corretta? Sto eseguedo delle ricerche usando le regular expression e non posso lasciare quei caratteri..
Vorrei evitare l'encode con relativo ignore se possibile.
C'è una soluzione?
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #1 inserita:: Agosto 26, 2015, 11:29:26 »

Non mi è ben chiaro quali sono i caratteri che vorresti venissero visualizzati in maniera corretta, e allora vado a intuito.  Ghigno

Hai la tua lista di esempio:

Citazione
lista=[u'tecnico', u'Nome: rick Col\u0148\n', u'Indirizzo: vicolo tra\xa0211/12CAP: 313, comune: verona\xa0']

la codifichiamo:

Citazione
[nuova.encode('utf-8') for nuova in lista]

che da come risultato:

Citazione
['tecnico', 'Nome: rick Col\xc5\x88\n', 'Indirizzo: vicolo tra\xc2\xa0211/12CAP: 313, comune: verona\xc2\xa0']

Questo è quello che vuoi oppure vorresti anche che i caratteri in esadecimale c5, 88 etc 'sparissero' e venissero sostituiti?  Ghigno

Una curiosità, da chi viene generata quella lista? Lo chiedo perché si potrebbe provare a risolvere il problema a monte.   Occhi al cielo
Registrato
ciclonite
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 21


Mostra profilo E-mail
« Risposta #2 inserita:: Agosto 27, 2015, 08:54:14 »

Grazie per la risposta Michele,
i caratteri incriminati sono \u0148 e \xa0. Vorrei che venissero interpretati in maniera corretta ossia in maniera "human readable".
La lista la genera beautifulSoup parsando un output html.
Hai qualche idea? Non riesco a capire che tipo di codifica usare..
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #3 inserita:: Agosto 27, 2015, 10:13:00 »

Non so se hai provato a seguire questa strada, ma leggendo la documentazione di BeautifulSoup potresti provare ad agire sull'output encoding:

http://www.crummy.com/software/BeautifulSoup/bs4/doc/#output-encoding

In sostanza, una possibile dinamica:

1) Verificare/"Capire" il charset dell'HTML;
2) Impostare di conseguenza l'output encoding di BeautifulSoup a, ad esempio, ISO8859-15 (se supportato, ma penso proprio di si  Linguaccia ).

Al limite, se non riesci, prova a riportare uno snippet di HTML di cui BeautifulSoup va a farne il parsing affinché sia possibile fare delle prove in locale da shell interattiva.
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines