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

JSON数据处理报错“string indices must be integers”问题排查

错误原因

你当前的JSON文件结构存在嵌套序列化的问题:外层数组的每个元素不是JSON对象,而是提前被转义过的JSON字符串。你调用json.loads(file.read())后得到的data是字符串数组,data[0]属于字符串类型,自然不能通过['user_id']这种字典键名的方式取值,因此触发TypeError: string indices must be integers报错。

解决方案

有两种修复方式,可根据你的场景选择:

  • 方案1:不修改现有JSON文件,读取时二次反序列化
    对第一次反序列化得到的每个字符串元素,再做一次JSON解析即可得到可按键取值的字典:
    import json
    
    with open("AccInformation.json") as file:
        str_list = json.loads(file.read())
        # 逐个解析数组中的JSON字符串
        data = [json.loads(item) for item in str_list]
        print(data[0]['user_id'])
    
  • 方案2:调整JSON生成逻辑(更推荐)
    生成JSON文件时不要把内层对象单独转成字符串再存入数组,直接生成标准的对象数组格式,修改后的JSON示例如下:
    [
        {"user_id": 88387467586, "firstName": "Murat", "lastName": "KOÇ", "email": "vehbikoc@kocholding.com.tr", "username": "kocholding", "password": "123456789", "accountKEY": "Y29K-G6LF-MRDI-PT5S-BZ1Q-VA4N", "register_date": "Mon Aug 30 02:01:31 2021"},
        {"user_id": 33233303603, "firstName": "Sema", "lastName": "UZUN", "email": "sema12@gmail.com", "username": "semazen", "password": "123456789", "accountKEY": "ZW2G-7960-HPQA-5SKX-LTDJ-YBCE", "register_date": "Mon Aug 30 14:42:39 2021"}
    ]
    
    这种情况下你原本的代码无需修改即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:45:04