Casting mit Dictionaries

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
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Hallo.
Ich kann ja Dictionaries mit

Code: Alles auswählen

str(dictionary)
umwandeln.
Aber leider nur in eine Richtung. Wie kann ich das möglichst einfach wieder zurückwandeln?
TUFKAB – the user formerly known as blackbird
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Mit

Code: Alles auswählen

dictionary = eval(strdict)
gruss
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Ich könnt mich schlagen. Das ich da nicht selber draufkomm :x
Danke :wink:
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich weiß ja nicht wofür es gebraucht wird... Aber ist eval() nicht generel böse :)
Ich meine, z.B. für CGI... Dann könnte man den String, der zu einem Dict "kovertiert" werden soll, evtl. manipulieren und schon sind böse Python Befehle eingeschleust...
Sollte man somit besser zu Fuss den String in ein Dict parsen? Also jede menge .split()...?
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Eval ist generell nicht böse.
Und ich rufe es ja so auf:

Code: Alles auswählen

    # ------------------------------------------------------------------------ #
    # Session Funktionen
    def SessionStart(self):
        if not self._COOKIE.has_key(self.__SESSION_ID):
            sid = md5(str(time.time())+str(random.random()))
            self.SetCookie(self.__SESSION_ID, sid, self.__SESSION_COOKIE_LIFETIME)
        else:
            sid = self._COOKIE[self.__SESSION_ID]
        try:
            session = file(self.__SESSION_NAME.replace("%SID%", sid)).read()
        except:
            session = "{}"
        self._SESSION = eval(session)
        self.__SESSION_OPEN = 1
        self._sessionid = sid
    def SessionSave(self):
        sid = self._sessionid
        if (self.__SESSION_OPEN):
            try:
                file(self.__SESSION_NAME.replace("%SID%", sid), "w").write(str(self._SESSION))
                self.__SESSION_OPEN = 0
                return 1
            except:
                return 0 
Entnommen von hier
Da kann kein Benutzer irgendeinen Code hinzufügen. Aber so kann ich ganz bequem Sessions speichern.
TUFKAB – the user formerly known as blackbird
Antworten