Dictionary Syntaxfehler

Django, Flask, Bottle, WSGI, CGI…
Antworten
Amelie
User
Beiträge: 16
Registriert: Montag 7. März 2011, 14:48

Ich brauche ein dictionary diesesHaus, das verschiedene Daten eines Hauses enthält um diese später in ein Excelblatt einzufügen, es enthält also auch eine (row, col) Zellenangabe. Allerdings erhalte ich immer wieder einen Syntax-Fehler, den ich nicht verstehe. Der fehler erscheint gleich im 1. Dict-Eintrag mit Pfeil auf 16 in (16,2). Ich habe versucht ihn zu umgehen, indem ich die Zellreferenz nocheinmal als verschachteltes Dict {'Zeile':16, 'Spalte':2} geschrieben habe, dann zeigt der Fehlerpfeil auf 'Zeile'.
Sieht jemand spontan, woran das liegen könnte?
Im Code unten ist das gesamte Dict, sowie die vorausgehenden Zeilen.

Code: Alles auswählen

Wohnflaeche = (ReferenzGebaeude['Anzahl Vollgeschosse'] * Grundflaeche)
diesesHaus['Volumen'] = diesesHaus['Wohnflaeche'] * ReferenzGebaeude['Raumhoehe']
faktor = (diesesHaus['Volumen'] / ReferenzGebaeude['Volumen'])

diesesHaus{'Bewohneranzahl': {'Zahl': {'Wert' : Bewohneranzahl,                                           'Zelle':(16,2), 'Blatt':1 }},
                  'Wohnflaeche':{'Flaeche':{'Wert': Wohnflaeche,                                             'Zelle':(2,2) , 'Blatt':1 }},
                  'Aussenwand':{{'Flaeche':{'Wert': ReferenzGebaeude['Aussenwand']['Flaeche'] * sqrt(faktor),'Zelle':(19,4), 'Blatt':2 }},
                                {'U-Wert': {'Wert': ReferenzGebaeude['Aussenwand']['U-Wert'] * faktor,       'Zelle':(19,5), 'Blatt':2 }}},
                  'Fenster':   {{'Flaeche':{'Wert': ReferenzGebaeude['Fenster']['Flaeche'] * sqrt(faktor),   'Zelle':(23,4), 'Blatt':2 }},
                                {'U-Wert': {'Wert': ReferenzGebaeude['Fenster']['U-Wert'] * faktor,          'Zelle':(23,5), 'Blatt':2 }}},
                  'Dach':      {{'Flaeche':{'Wert': ReferenzGebaeude['Dach']['Flaeche'] * faktor,            'Zelle':(27,4), 'Blatt':2 }},
                                {'U-Wert': {'Wert': ReferenzGebaeude['Dach']['U-Wert'] * faktor,             'Zelle':(27,5), 'Blatt':2 }}},
                  'Keller':    {{'Flaeche':{'Wert': ReferenzGebaeude['Boden']['Flaeche'] * faktor,           'Zelle':(28,4), 'Blatt':2 }},
                                {'U-Wert': {'Wert': ReferenzGebaeude['Boden']['U-Wert'] * faktor ,           'Zelle':(28,5), 'Blatt':2 }}}}
Zuletzt geändert von Amelie am Donnerstag 21. April 2011, 10:26, insgesamt 1-mal geändert.
deets

zwischen "diesesHaus" und der oeffnenden Klammer fehlt schonmal ein =-Zeichen.
BlackJack

@Amelie: Das nächste Problem kommt dann bei 'Aussenwand'. Zwei aufeinanderfolgende '{' machen keinen Sinn. Nach '{' muss ja erst einmal ein Schlüssel kommen und ein Dictionary geht nicht als Schlüssel. Eventuell hilft es das mal ordentlich zu formatieren.
Amelie
User
Beiträge: 16
Registriert: Montag 7. März 2011, 14:48

deets hat geschrieben:zwischen "diesesHaus" und der oeffnenden Klammer fehlt schonmal ein =-Zeichen.
Oh, das war dann ein Missverstehen der Art wie man ein dict schreibt. Da habe ich die beiden Arten gemischt

Code: Alles auswählen

dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
knights = {'gallahad': 'the pure', 'robin': 'the brave'}
BlackJack hat geschrieben:Eventuell hilft es das mal ordentlich zu formatieren.
Zumindest ordentlich ausgesehen hat es schon, wie sinnvoll es war, ist die andere Frage :) Geholfen hat es, danke!

Code: Alles auswählen

        diesesHaus = {
             'Bewohneranzahl': 
                               {'Zahl': 
                                       {'Wert' : Bewohneranzahl,                                         'Zelle':(16,2), 'Blatt':1 }},
             'Wohnflaeche':
                               {'Flaeche':
                                       {'Wert': Wohnflaeche,                                             'Zelle':(2,2) , 'Blatt':1 }},
             'Aussenwand': 
                               {'Flaeche':
                                       {'Wert': ReferenzGebaeude['Aussenwand']['Flaeche'] * sqrt(faktor),'Zelle':(19,4), 'Blatt':2 },
                                'U-Wert': 
                                       {'Wert': ReferenzGebaeude['Aussenwand']['U-Wert'] * faktor,       'Zelle':(19,5), 'Blatt':2 }},
             'Fenster':  
                               {'Flaeche':
                                       {'Wert': ReferenzGebaeude['Fenster']['Flaeche'] * sqrt(faktor),   'Zelle':(23,4), 'Blatt':2 },
                                'U-Wert': 
                                       {'Wert': ReferenzGebaeude['Fenster']['U-Wert'] * faktor,          'Zelle':(23,5), 'Blatt':2 }},
             'Dach':      
                               {'Flaeche':
                                       {'Wert': ReferenzGebaeude['Dach']['Flaeche'] * faktor,            'Zelle':(27,4), 'Blatt':2 },
                                'U-Wert':
                                       {'Wert': ReferenzGebaeude['Dach']['U-Wert'] * faktor,             'Zelle':(27,5), 'Blatt':2 }},
             'Keller':    
                               {'Flaeche':
                                       {'Wert': ReferenzGebaeude['Keller']['Flaeche'] * faktor,          'Zelle':(28,4), 'Blatt':2 },
                                'U-Wert':
                                       {'Wert': ReferenzGebaeude['Keller']['U-Wert'] * faktor ,          'Zelle':(28,5), 'Blatt':2 }}}
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Da geht aber noch Übersichtlichkeit:

Code: Alles auswählen

diesesHaus = {
    'Bewohneranzahl': {
        'Zahl': {
            'Wert' : Bewohneranzahl,
            'Zelle':(16,2),
            'Blatt':1
        }
    },
    'Wohnflaeche': {
        'Flaeche': {
            'Wert': Wohnflaeche,
            'Zelle':(2,2), 
            'Blatt':1
        }
    },
    ...
}
Das Leben ist wie ein Tennisball.
Antworten