我有一个字典数组,它们将动态生成HTML表单。
form_elements = [
{
'input_type': 'radio',
'options':
{
'bad': 'Bad',
'good': 'Good'
},
'caption': 'How are you feeling?'
},
{
'input_type': 'input_text',
'caption': 'What is your name?'
}]
当我遍历列表并尝试获取单选按钮的选项时,我得到一个关键错误,大概是因为该值是另一个字典。
for elm in form_elements:
print elm['options']
奇怪的是,这会返回true:
'options' in elm.keys()
如何访问嵌套字典?
答案 0 :(得分:1)
当您在form_elements
上进行迭代时,您将遍历包含两个词典的列表。其中一个词典(列表中的第一个)将字符串'options'作为键,但另一个不是。所以它在第一个循环上成功,但在第二个循环上失败。如果你看向堆栈跟踪的正上方,你应该看到成功的print语句。
将字典作为字典的值不是问题。
答案 1 :(得分:1)
试试这个:
for elm in form_elements:
if 'options' in elm.keys():
print elm['options']