2017-08-12 36 views
1
trainer_dict = OrderedDict([('Smith', {'hour_5':'Julia','hour_1':'','hour_2','Kim'}),('Sam',{'hour_5':'','hour_1':'Anna','hour_2',''})]) 

我如何在字典中使用hour_num(Julia,Kim,Anna)的值?使用Django的OrderedDict中的字典

for trainer in trainer_dict: 
    trainer.hour_5 

上面的代碼有一個錯誤:'str'對象沒有屬性'hour_5'。

所以,{{trainer.hour_5}}在模板中什麼都不顯示。

for trainer in trainer_dict: 
    trainer['hour_5'] 

也有一個錯誤:字符串索引必須是整數。

[()]中有一本詞典。我如何訪問字典?

回答

2

試試這個:

for trainer, training in trainer_dict.items(): 
    training['hour_5'] 

my_dict = OrderedDict([('foo', {'a':'b'}),('bar',{'c':'d'})])將創建一個像可以這樣表示對象的字典:

my_dict = { 
    'foo': {'a': 'b'}, 
    'bar': {'c': 'd'} 
} 

可以使用遍歷鍵,值和my_dict鍵值對my_dict.keys()my_dict.values()my_dict.items()

希望它可以幫助

+0

它不起作用。 ValueError:解壓縮的值太多(預期2)。所以我嘗試了'培訓師,培訓等在trainder_dict: 培訓['hour_5']'有一個錯誤:字符串索引必須是整數。 – Julia

+0

@Julia我已經更新了答案。忘了添加.items() – akhilsp

+0

我認爲你拼寫'項目'爲'itmes' – akhilsp

1

當你做for trainer in trainer_dict這裏的教練是在字典的關鍵,那就是你的情況的字符串(訓練師的名字)。因此,爲了獲得存儲在該密鑰處的值,您可以執行trainer_dict[trainer],這將爲您提供另一個字典,例如名稱爲「Smith」的{'hour_5':'Julia','hour_1':'','hour_2','Kim'}。合理?