Seite 2 von 2
Verfasst: Dienstag 4. Dezember 2007, 23:26
von Leonidas
debian75 hat geschrieben:könnte das ein unicode problem sein ?
Nein, es hat was mit der Mondphase zu tun.
Bekomme ich jetzt ärger wenn ich keinen Smiley anhänge?
Verfasst: Mittwoch 5. Dezember 2007, 00:03
von debian75
Bekomme ich jetzt ärger wenn ich keinen Smiley anhänge?
aber hallo !
Verfasst: Mittwoch 5. Dezember 2007, 10:09
von Leonidas
Also ausführlicher: Nein, es ist natürlich kein Unicode-Problem. Unicode ist dafür da, Zeichen in äquivalente Zeichen umzukodieren. Nicht umd Leerzeichen in Plus-Zeichen zu wandeln. Sind ja ganz verschiedene Dinge.
Verfasst: Mittwoch 5. Dezember 2007, 13:58
von debian75
neue frage:
von der ET website:
"find(pattern) returns the first subelement that matches the given pattern, or None if there is no matching element."
weiss jemand was mit "None" gemeint ist ?
ich hab: item.find("gaga").findtext("gugus")
wenn nun kein "gaga" vorhanden ist, gibts nen error, also hab ich flgendes versucht:
Code: Alles auswählen
if item.find("gaga") is None:
if item.find("gaga") is 'None':
if item.find("gaga") == None:
if item.find("gaga") == 'None':
hat aber alles nicht geholfen. da i der error meldung etwas von "NoneType" steht, hab ich selbiges mit "NoneType" statt "None" versucht aber ebenfalls ohne erfolg.
ich weiss jetzt nicht ob die mit None wirklich einen wert "None" meinen oder aber FALSE oder einen empty string.
gruss
d
Verfasst: Mittwoch 5. Dezember 2007, 14:11
von gerold
Hallo debian75!
Funktioniert es so?
Code: Alles auswählen
gaga = item.find("gaga")
if gaga:
gugus = gaga.findtext("gugus")
mfg
Gerold

Verfasst: Mittwoch 5. Dezember 2007, 14:21
von debian75
gerold hat geschrieben:Hallo debian75!
Funktioniert es so?
Code: Alles auswählen
gaga = item.find("gaga")
if gaga:
gugus = gaga.findtext("gugus")
mfg
Gerold

weiss ned, kann leider erst heute abend versuchen, bin auf der arbeit
thnx for the hint
gruss
d
Verfasst: Mittwoch 5. Dezember 2007, 15:10
von BlackJack
Mit `None` ist das gleichnamige Objekt gemeint. Die erste und dritte Variante der ``if``\s ist "richtig". Die Anführungsstriche weil Du sicher nicht testen wolltest ob es `None` ist, sondern ob es *nicht* `None` ist.
Verfasst: Mittwoch 5. Dezember 2007, 16:06
von Leonidas
Erstere Variante würde auch gehen (und habe ich schon öfters zum Test auf None gesehen), denn None ist ein Singleton und damit kann man es auch auf Identität testen.
Edit: Sorry BlackJack, habe übersehen dass du die erste auch schon erwähnt hattest.
Verfasst: Mittwoch 5. Dezember 2007, 16:52
von BlackJack
Ich schrob doch erste und dritte.

Verfasst: Mittwoch 5. Dezember 2007, 17:03
von BlackJack
@debian75: Um nochmal das mit den '+' aufzugreifen: Das wird in der URL mit '+' angezeigt, ein '+' in den Parametern bedeutet aber Leerzeichen, dass hast Du ja schliesslich eingegeben und bekommst es dementsprechend im Python-Programm auch wieder mit Leerzeichen.
Wenn Du das dann einfach so zu einer Zeichenkette zusammensetzt, kommen die '+' da natürlich nicht auf magische Weise wieder hinein. Das gäbe einen ziemlichen Aufschrei wenn Python einfach in jede Zeichenkette '+' statt Leerzeichen schreiben würde. Du solltest vielleicht mal in die Doku schauen und die Parameter nicht selbst in die URL reinbasteln, sondern das zweite Argument von `urlopen()` verwenden. Da werden dann auch Leerzeichen entsprechend wieder als '+' kodiert.
Verfasst: Mittwoch 5. Dezember 2007, 23:48
von debian75
BlackJack hat geschrieben:@debian75: Um nochmal das mit den '+' aufzugreifen: Das wird in der URL mit '+' angezeigt, ein '+' in den Parametern bedeutet aber Leerzeichen, dass hast Du ja schliesslich eingegeben und bekommst es dementsprechend im Python-Programm auch wieder mit Leerzeichen.
Wenn Du das dann einfach so zu einer Zeichenkette zusammensetzt, kommen die '+' da natürlich nicht auf magische Weise wieder hinein. Das gäbe einen ziemlichen Aufschrei wenn Python einfach in jede Zeichenkette '+' statt Leerzeichen schreiben würde. Du solltest vielleicht mal in die Doku schauen und die Parameter nicht selbst in die URL reinbasteln, sondern das zweite Argument von `urlopen()` verwenden. Da werden dann auch Leerzeichen entsprechend wieder als '+' kodiert.
hab das jetzt so gemacht, danke.