2016-05-31 4 views
-4

Zu Beginn meines Programms definiere ich ein einfaches Objekt, das die Konfiguration für das Aufrufen eines Dienstes festlegt. Wie so:Kann var nicht in Python finden

document_conversion = DocumentConversionV1(
    username='xxx', 
    password='xxx', 
    version='2016-05-31') 

Ich möchte dann einen Dienst für alle Dateien in einem Verzeichnis aufrufen. Ich versuche, es zu tun, wie so, aber ich glaube, das Config-Objekt nicht gefunden werden kann - es scheint, den Gültigkeitsbereich zu sein, ich diesen Fehler:

NameError: name 'config' is not defined 

Hier ist, was ich direkt nach der Objekterstellung habe:

Ich habe versucht, das Config-Objekt innerhalb der for-Klausel innerhalb der for-Schleife zu definieren, aber es scheint immer noch nicht zu funktionieren. Seltsamerweise, wenn ich die for-Schleife aus dem obigen entferne, scheint es zu funktionieren (wenn es auf einer Datei und nicht in einem Ordner läuft).

Irgendwelche Ideen, was könnte das Problem hier sein?

Dank

+3

Könnten Sie bitte den Code zeigen, wo Sie ihn gerade definieren? – JETM

+0

Dieser Code definiert das 'config' Objekt nirgendwo. Auch dieser Ausdruck 'open (join (dirname (__ file__), os.path.join (root, name)), 'r')' sieht etwas verdächtig aus. Was soll es tun? –

Antwort

1

Wenn das config Wörterbuch nur die 'conversion_target' Schlüssel enthalten sollte, könnten Sie die Linie

config['conversion_target'] = DocumentConversionV1.ANSWER_UNITS 

mit

config = {'conversion_target': DocumentConversionV1.ANSWER_UNITS} 
0

Das Problem ist, ersetzen, dass, um eine zuweisen Wert für ein Array mit der Zeile:

config['conversion_target'] = DocumentConversionV1.ANSWER_UNITS 

Das Wörterbuch 'config' sollte bereits initialisiert sein. Wenn Sie Wert und Wert gleichzeitig initialisieren möchten, können Sie verwenden.

config = {'conversion_target': DocumentConversionV1.ANSWER_UNITS} 

Der komische Teil funktioniert das, wenn die Schleife entfernt wird. Bist du sicher, dass es in die innere Schleife eintritt?