2016-09-12 4 views
0

Я вложенную, заказал словарь встроенный в Python 3. Он выглядит следующим образом:Python 3 вложенных упорядоченный словарь ключ доступа

coefFieldDict = OrderedDict([(('AC_Type',), 
    OrderedDict([('BADA_code', 0), ('n_engine', 1), ('eng_type', 2), 'wake_cate', 3)])), 
    (('Mass',), OrderedDic([('m_ref', 4), ('m_min', 5), ('m_max', 6), ('m_pyld', 7), ('G_w', 8), ('unused', 9)])) 
    (('Flight_Env',), OrderedDict([('V_MO', 10), ('M_MO', 11), ('h_MO', 12), ('h_max', 13), ('G_t', 14), ('unused', 15)]))], ...) 

Теперь я хочу, список ключей на верхнем уровне, который я получаю с:

outerKeys = list(coefFieldDict.keys()) 

которые дают мне:

[('AC_Type',), 
('Mass',), 
('Flight_Env',), 
('Aero',), 
('Thrust',), 
('Fuel',), 
('Ground',)] 

и для примера один из ключей, у меня есть:

list(coefFieldDict.keys())[1][0] 

Out[104]: 'Mass' 

Теперь, используя этот действительный ключ в orderedDict ('coefFieldDict'), я получаю эту ошибку:

Traceback (most recent call last): 

File "<ipython-input-107-61bab1ad7886>", line 1, in <module> 

coefFieldDict['Mass'] 

KeyError: 'Mass' 

Что я делаю не так?

+0

Отформатируйте ваш пример словаря правильно. – ospahiu

ответ

1

попробовать coefFieldDict[('Mass',)]

... Так как вы используете кортежи (почему?) Вместо строк в качестве ключа