Seite 1 von 1

Dictionary Syntaxfehler

Verfasst: Mittwoch 13. April 2011, 10:08
von Amelie
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 }}}}

Re: Dictionary Syntayfehler

Verfasst: Mittwoch 13. April 2011, 10:12
von deets
zwischen "diesesHaus" und der oeffnenden Klammer fehlt schonmal ein =-Zeichen.

Re: Dictionary Syntayfehler

Verfasst: Mittwoch 13. April 2011, 10:34
von 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.

Re: Dictionary Syntayfehler

Verfasst: Mittwoch 13. April 2011, 10:50
von Amelie
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 }}}

Re: Dictionary Syntayfehler

Verfasst: Mittwoch 13. April 2011, 11:05
von EyDu
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
        }
    },
    ...
}