1

我有一组字典,它们将动态生成 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()

如何访问嵌套字典?

4

2 回答 2

1

当你迭代时form_elements,你正在迭代一个包含两个字典的列表。其中一个字典(列表中的第一个)将字符串“options”作为键,而另一个则没有。所以它在第一个循环上成功,但在第二个循环上失败。如果您查看堆栈跟踪的正上方,您应该会看到成功的打印语句。

将字典作为字典的值不是问题。

于 2013-09-21T19:51:15.210 回答
1

试试这个:

for elm in form_elements:
    if 'options' in elm.keys():
        print elm['options']
于 2013-09-21T19:56:48.850 回答