You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中获取嵌套字典内所有子字典的type值?

解决Python嵌套字典获取所有'type'值的问题

嘿,我来帮你梳理下问题所在,然后给出正确的实现方式~

错误原因分析

你写的循环里,第一个for item in data其实遍历的是字典的键(也就是'1'和'2'这两个字符串),而不是对应的子字典。所以当你尝试item['type']时,相当于在对字符串使用字符串索引,这显然不符合Python的规则,自然就抛出TypeError: string indices must be integers这个错误啦。

正确实现方法

这里给你两种常用的正确写法:

方法1:直接遍历字典的子字典值

如果只需要获取每个子字典的type值,直接遍历data.values()就能拿到所有子字典:

data = { '1': { 'type': 'card', 'card[number]': 12345, }, '2': { 'type': 'wechat', 'name': 'paras' }}

for sub_dict in data.values():
    print(sub_dict['type'])

运行后会输出:

card
wechat

方法2:遍历键值对(需要外层键时用)

如果同时需要用到外层的键(比如'1'、'2'),可以用data.items()遍历键值对:

for key, sub_dict in data.items():
    print(f"键 {key} 对应的type值是:{sub_dict['type']}")

运行输出:

键 1 对应的type值是:card
键 2 对应的type值是:wechat

可选:处理可能缺失'type'键的情况

如果担心有的子字典没有'type'键,可以加个判断避免KeyError:

for sub_dict in data.values():
    type_value = sub_dict.get('type', '无type字段')
    print(type_value)

或者用in判断:

for sub_dict in data.values():
    if 'type' in sub_dict:
        print(sub_dict['type'])
    else:
        print("该子字典不存在type字段")

内容的提问来源于stack exchange,提问作者user_123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:02:57