2013-03-14 96 views
-4

我有一本字典一样如下:Python的字典类型的错误

Dict = { "key1" : {"subkey1" : "value1" , "subkey2" : "value2" , 

     "key2" : {"subkey1" : "value3" , "subkey2" : "value4 } 

我基本上希望能够检查值如下

if (Dict[key][any_subkey] == "value"): 

    do something.... 

我收到类型错误:列表索引必须是整数,不str ...

任何人都可以请帮助我这一点。

+0

当你得到这个'TypeError'时,什么是'Dict [key]'? – 2013-03-14 02:17:07

+1

它看起来像你的'Dict'的定义,你的实际执行没有被分配。 'Dict'或'Dict [key]'是一个'list'。 – mgilson 2013-03-14 02:17:33

+0

当你得到这个TypeError时,什么是Dict [键]?它是一个与键 – 2013-03-14 02:19:35

回答

0

这个工作对我来说:

>>> Dict = { "key1" : {"subkey1" : "value1" , "subkey2" : "value2"} , 
...   "key2" : {"subkey1" : "value3" , "subkey2" : "value4" }} 
>>> Dict["key1"] 
{'subkey2': 'value2', 'subkey1': 'value1'} 
>>> Dict["key1"]["subkey1"] 
'value1' 
>>> 

你检查你的语法?

+0

dict = {“key1”:{“subkey1”:“val1”,“subkey2”:“val2”}} ..这就是我的声明。你粘贴的那个将会工作 – 2013-03-14 02:35:11

+0

所以你让它工作?在你的例子中,你在第一行,在逗号前面和在第二行末尾的另一个面板上缺少关闭。 – tor 2013-03-14 02:50:57

+0

NO仍然得到相同的错误。 :( – 2013-03-14 02:55:06

0

是这样的?

>>> Dict = { "key1" : {"subkey1" : "value1" , "subkey2" : "value2" , 
... 
...     "key2" : {"subkey1" : "value3" , "subkey2" : "value4" } 
...        } 
...   } 
>>> print Dict["key1"]["key2"]["subkey2"] == "value4" 
True 
+0

NO我要Dict [ KEY1 “] [” subkey1" ] – 2013-03-14 02:37:47