2016-05-31 118 views
-4

在我的程序開始時,我正在定義一個簡單的對象,用於設置我將如何調用服務的配置。像這樣:在Python中找不到var var

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

然後我想調用一個目錄中的所有文件的服務。我嘗試做它像這樣,但我相信配置對象不能被發現 - 這似乎是超出了範圍,我得到這個錯誤:

NameError: name 'config' is not defined 

這裏是我有什麼直接的對象創建後:

yourpath = 'C:\\Users\\Desktop\\working_folder\\' 

for root, dirs, files in os.walk(yourpath, topdown=False): 
    for name in files: 
     print(os.path.join(root, name)) 
     config['conversion_target'] = DocumentConversionV1.ANSWER_UNITS 
     with open(join(dirname(__file__), os.path.join(root, name)), 'r') as document: 
     print(json.dumps(document_conversion.convert_document(document=document, config=config), indent=2)) 

我試着在for循環中定義配置對象/在with子句中,但它似乎仍然不起作用。奇怪的是,如果我從上面刪除for循環,它似乎工作(如果運行在一個文件,而不是文件夾)。

任何想法可能是這裏的問題?

感謝

+3

請問您可以在當前定義的代碼中顯示代碼嗎? – JETM

+0

該代碼沒有在任何地方定義「config」對象。另外,表達式'open(join(dirname(__ file__),os.path.join(root,name)),'r')'看起來有點可疑。它應該做什麼? –

回答

1

如果config字典應該只包含'conversion_target'鍵,你可以用

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

問題更換線

config['conversion_target'] = DocumentConversionV1.ANSWER_UNITS 

的是,爲了分配值與數組一起使用:

config['conversion_target'] = DocumentConversionV1.ANSWER_UNITS 

字典'config'應該已經初始化。如果你想同時初始化和分配價值,你可以使用。

config = {'conversion_target': DocumentConversionV1.ANSWER_UNITS} 

奇怪的部分是這個工作時,循環被刪除。你確定它正在進入內部循環嗎?