说我有一个看起来像这样的Dict ......
values = {
'student': [{
'field': 'prefix',
'description': 'First name'
},
{
'field': 'suffix',
'description': 'Last name'
},
{
'field': 'student_email',
'description': 'Email address'
}],
'classes': [{
'field': 'course_code',
'description': 'Course code'
}]
}
Run Code Online (Sandbox Code Playgroud)
我想要的
['prefix', 'suffix', 'student_email', 'course_code']
Run Code Online (Sandbox Code Playgroud)
但是我试图在没有循环循环的情况下这样做.
所以这就是我所拥有的:
stored = [] # store the field values in a list
for value in values:
stored.append(value['field'])
Run Code Online (Sandbox Code Playgroud)
而且它正在抛出:
TypeError: string indices must be integers
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
您收到错误,因为字典比您的循环深一级,您可以调用items()字典来获取值部分:
[v1['field'] for k, v in values.items() for v1 in v]
# ['prefix', 'suffix', 'student_email', 'course_code']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |