"%20" -> Leerzeichen usw.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tantris
User
Beiträge: 10
Registriert: Donnerstag 31. August 2006, 10:05

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?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
tantris
User
Beiträge: 10
Registriert: Donnerstag 31. August 2006, 10:05

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 ;-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
niNer
User
Beiträge: 2
Registriert: Samstag 19. Mai 2007, 01:11

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...
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

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']
Benutzeravatar
niNer
User
Beiträge: 2
Registriert: Samstag 19. Mai 2007, 01:11

Ah ja, stimmt! CGI! Hätt ich mir eigentlich denken sollen...

Dank Dir, veers!
Antworten