Seite 1 von 1

"%20" -> Leerzeichen usw.

Verfasst: Samstag 5. Mai 2007, 20:06
von tantris
Hallo,

ich bastle gerade an einem kleinen Skript, um die Geo-IP-Daten von hostip.info in eine Oracle-DB zu pumpen.
Dazu benutze ich die csv-Dateien von http://ftp.wayne.edu/hostip.info/csv/
in der hip_ip4_city_lat_lon tauchen allerdings in der "Namens"-Spalte scheinbar hex-escapede Zeichen auf (nennt man das so? Ich meine %20 für ein Leerzeichen etc.);
beispiel:
['50543872', 'Princeton%2C%20NJ', '40.3503', '-74.6594']

Leider fällt mir auf die Schnelle keine Python-Fkt. ein, um diese durch %XY codierten Zeichen in ein bestimmtes Encoding umzuwandeln... in welche Richtung muss ich dafür schauen?

Re: "%20" -> Leerzeichen usw.

Verfasst: Samstag 5. Mai 2007, 20:14
von Leonidas
tantris hat geschrieben:Leider fällt mir auf die Schnelle keine Python-Fkt. ein, um diese durch %XY codierten Zeichen in ein bestimmtes Encoding umzuwandeln... in welche Richtung muss ich dafür schauen?
Versuchts mal mit der Richtung ``urllib``. ``urllib.unquote()`` klingt nach genau dem richtigen.

Verfasst: Samstag 5. Mai 2007, 20:26
von tantris
args, vielen, vielen Dank, Leonidas :)
Dass urllib.urlencode so einigermaßen das Gegengesetzte zu dem ist, was ich gesucht habe, wusste ich; nur hab ich dann nach sowas wie urldecode() gesucht ;-)

Verfasst: Samstag 5. Mai 2007, 20:31
von Leonidas
tantris hat geschrieben:Dass urllib.urlencode so einigermaßen das Gegengesetzte zu dem ist, was ich gesucht habe, wusste ich; nur hab ich dann nach sowas wie urldecode() gesucht ;-)
Ich für meinen Teil frage mich, warum es eigentlich dazu keinen Codec gibt, den man mit ``basestring.emcode()`` und ``basestring.decode()`` verwenden kann. Das fände ich eigentlich recht konsequent.

Verfasst: Mittwoch 13. Juni 2007, 23:14
von niNer
Ich hätt ein ähnliches Problem...
Ich müsste eine URL dekodieren die so ('foo.py?action=dosth&name=douglas&alter=42') aussieht. Das decoded er mir mit unquote bzw. unquote_plus nicht...

Kann mir da wer weiterhelfen? Thx...

Verfasst: Mittwoch 13. Juni 2007, 23:44
von veers
Schau dir mal das CGI Modul an. Das kann Querystrings Parsen.

Code: Alles auswählen

In [2]: cgi.parse_qs('foo.py?action=dosth&name=douglas&alter=42')
Out[2]: {'alter': ['42'], 'foo.py?action': ['dosth'], 'name': ['douglas']

Verfasst: Donnerstag 14. Juni 2007, 01:54
von niNer
Ah ja, stimmt! CGI! Hätt ich mir eigentlich denken sollen...

Dank Dir, veers!