簡體   English   中英

在字典查找中使用Python列表或字符串?

[英]Using A Python List or String in Dictionary Lookup?

用例

我正在用Python制作一個工廠類型的腳本,該腳本使用XML,並基於該XML從特定工廠返回信息。 我創建了一個名為FactoryMap.json的文件,該文件存儲可以在XML中找到項目的位置與適當工廠之間的映射。

問題

我的映射文件中的JSON如下所示:

{

      "path": "['project']['builders']['hudson.tasks.Shell']",
      "class": "bin.classes.factories.step.ShellStep"

}

路徑是將元素轉換為字典后可以在xml中找到的位置。

class是可以使用該元素信息的工廠的對應路徑。

為了執行此操作,我需要進入字典結構,如果我不必從文件中提取此信息(請注意鍵參考='來自我的json'的'path'),則該結構將如下所示:

configDict={my xml config dict}
for k,v in configDict['project']['builders']['hudson.tasks.Shell'].iteritems():
    #call the appropriate factory

問題是,如果我將路徑值查找為字符串或列表,則無法在'iteritems'()中使用它:

path="['project']['builders']['hudson.tasks.Shell']" #this is taken from the JSON
for k,v in configDict[path].iteritems():
    #call the appropriate factory

這將返回鍵錯誤,指出我不能使用字符串作為鍵值。 如何使用變量作為該python字典的鍵?

您可以使用eval

eval( "configDict"+path )

您可以使用eval()函數評估進入實際dict對象與字符串的路徑。 我指的是這樣的東西:

path="['project']['builders']['hudson.tasks.Shell']" #this is taken from the JSON
d = eval("configDict%s" % path)
for k,v in d.iteritems():
#call the appropriate factory

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM