Seite 1 von 1

Variable kommt nicht an

Verfasst: Sonntag 14. Mai 2017, 22:29
von nathan6
Hallo,

es ist etwas schwer mein Problem zu beschreiben da ich noch nicht so viel mit Python zu tun hatte, nur mit PHP.
Bis zur hälfte funktioniert mein script, nur "x" kommt irgendwie nicht da an wo ich es brauche:

Code: Alles auswählen

    def questsShow(self):
        for q in self.message.questData:
            if q.numObjectives > 0:
               a = ['"' + str(q.questID) + '"']
               for x in a:
                   print x                                    # bis hierher stimmt alles, die Ausgabe ist so wie ich sie brauche
                   for file in glob.glob("xml/*quests*"):
                       root = lxml.etree.parse(file)
                       for c in root.iter('Quest'):
                           if c.get('id') == x:             # hier sollten eigentlich die IDs ankommen (zB: "2701", "2702", usw) tun sie aber nicht
                              print c.get('id')
                              print c.get('name')
Warum kommen die IDs nicht dort an ?
Wenn ich

Code: Alles auswählen

if c.get('id') == x:
in

Code: Alles auswählen

if c.get('id') == "2701":
ändere, funktioniert es.

Gruß
Nathan6

Re: Variable kommt nicht an

Verfasst: Sonntag 14. Mai 2017, 22:35
von BlackJack
@nathan6:

Code: Alles auswählen

In [4]: "2701" == '"2701"'
Out[4]: False
Du solltest halt nicht Anführungszeichen um die ID basteln wenn die ID gar keine Anführungszeichen enthält.

Re: Variable kommt nicht an

Verfasst: Sonntag 14. Mai 2017, 22:37
von nathan6
Ja, aber um die ID in der XML Datei zu finden brauche ich die Anführungszeichen sonst funktioniert es nicht.

Re: Variable kommt nicht an

Verfasst: Sonntag 14. Mai 2017, 22:40
von __deets__
Unsinn. Du findest die Id mit 'id' weil das Attribut so heißt. Mit der in x gespeicherten hat das nix zu tun.

Re: Variable kommt nicht an

Verfasst: Sonntag 14. Mai 2017, 22:42
von nathan6
Stimmt, jetzt klappt es. Man hätte ich auch selber drauf kommen können :K

Danke