[Python] Pandas ed Encoding

Manlio Perillo manlio.perillo a gmail.com
Mar 9 Feb 2016 12:35:31 CET


2016-02-08 22:37 GMT+01:00 Christian Barra <barrachri a gmail.com>:
> Il giorno 8 febbraio 2016 21:04, Andrea D'Amore <and.damore a gmail.com> ha
> scritto:
>>
>> 2016-02-08 19:19 GMT+01:00 Christian Barra <barrachri a gmail.com>:
>> >> curl -I 'urlDaDoveScaricoUnFileCSV'
>>
>> > "<p>Il vino bianco D.O.C. 5 terre � ricavato....
>>
>> Ok ma l'uscita di curl qual è?
>
>
> curl -I 'urlDaDoveScaricoUnFileCSV'
> poi sono semplicemente andato a riprendere la stringa di testo che ho
> utilizzato come esempio finora.
>

Dovresti anche dirci gli headers che restituisce il server HTTP, in
particolare il Content-Type.

> [...]
>
> Allora...ho fatto un po di test.
>
> df_witouht_urlib = pd.read_csv(URL,encoding = "latin-1")
> s = df_witouht_urlib.loc[1,"DESCRIZIONE"]
> print(type(s))
>
> <class 'str'>
>
>
> s.__repr__()
>
>
> '"<p>Il vino bianco D.O.C. 5 terre è
>

Il problema potrebbe essere che panda, quando scarica il file tramite
HTTP, ignori l'encoding che gli passi ed invece usa quello specificato
dal server HTTP, oppure cerca di indovinarlo.

Comunque un consiglio: **non** assumere che l'encoding sia latin-1, ma
usa cp1252 invece.
Vedi questa discussione per un pò di contesto:
https://groups.google.com/forum/#!searchin/golang-nuts/iso-8859-1/golang-nuts/VudK_05B62k/RtnrQtAPFgAJ

> [...]
>
> print(type(data))
>
>
> <class 'bytes'>
>

Ah, usi Python 3.
Stavo assumendo Python 2.


Ciao  Manlio


Maggiori informazioni sulla lista Python