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

Python遍历字典报TypeError: string indices must be integers如何解决

错误产生原因

你当前定义的den是存储单个用户属性的单层字典,调用den.items()遍历的时候,每次迭代返回的是单组键值对:键是属性名(比如'first_name'),值是属性对应的字符串内容(比如'den')。
你在循环里把值字符串赋值给user_info后,尝试用user_info['first_name']这种字典索引的方式操作字符串,触发了类型错误,Python的字符串仅支持整数下标取值。

解决方案

分两种场景选择对应修改方式:

场景1:仅需处理当前单个用户的信息

不需要遍历字典,直接读取对应属性即可,修改后代码:

den = {
    'first_name': 'den',
    'last_name': 'elc',
    'age': '16',
    'city': 'slovakia',
}
nameo = den['first_name']
namei = den['last_name']
age = den['age']
city = den['city']
print(f"\tFirst name:{nameo}")
print(f"\tLast_name:{namei}")
print(f"\tAge:{age}")
print(f"\tCity:{city}")

场景2:后续需要扩展存储多个用户信息

你可以把外层改成嵌套字典结构,符合你原有循环的逻辑,修改后代码:

# 外层字典的键是用户名,值是对应用户的属性字典
users = {
    'den': {
        'first_name': 'den',
        'last_name': 'elc',
        'age': '16',
        'city': 'slovakia',
    }
    # 后续可以在此处添加其他用户的字典
}
for user, user_info in users.items():
    nameo = user_info['first_name']
    namei = user_info['last_name']
    age = user_info['age']
    city = user_info['city']
    print(f"\tFirst name:{nameo}")
    print(f"\tLast_name:{namei}")
    print(f"\tAge:{age}")
    print(f"\tCity:{city}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:57:04