xml newb hilfe

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

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?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
debian75
User
Beiträge: 90
Registriert: Dienstag 27. November 2007, 01:05

Bekomme ich jetzt ärger wenn ich keinen Smiley anhänge?

aber hallo !
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
debian75
User
Beiträge: 90
Registriert: Dienstag 27. November 2007, 01:05

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
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo debian75!

Funktioniert es so?

Code: Alles auswählen

gaga = item.find("gaga")
if gaga:
  gugus = gaga.findtext("gugus")
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
debian75
User
Beiträge: 90
Registriert: Dienstag 27. November 2007, 01:05

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

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.
Zuletzt geändert von Leonidas am Mittwoch 5. Dezember 2007, 18:05, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Ich schrob doch erste und dritte. :-)
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.
debian75
User
Beiträge: 90
Registriert: Dienstag 27. November 2007, 01:05

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.
Antworten