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

修改字典列表中空字符串值时出现TypeError的解决方法及简化实现

问题分析与解决

咱们先拆解下你遇到的问题,再给你更简洁的处理方式:

你的代码错误原因

  1. 参数命名冲突:你把函数参数命名为dict,这是Python的内置类型名称,容易引发混淆,建议换成data_list这类清晰的名字。
  2. 索引使用错误:报错的核心是这句dict[value] = "IMG"——你传入的dict其实是个列表,而value是空字符串,用字符串当列表索引肯定会触发TypeError。正确的做法是修改当前遍历到的字典里的对应键值,比如item[key] = "IMG"。

修正后的基础版本

先把你的函数改对,同时优化遍历逻辑(直接遍历列表元素比用range(len())更直观):

def clean_empty_string(data_list):
    for item in data_list:
        for key, value in item.items():
            if key == 'message' and value == '':
                item[key] = "IMG"
    return data_list

更简便的写法(一行搞定)

如果想更简洁,可以用列表推导式+字典推导式,一行完成数据清理:

# 注意:你原data里的字典有重复key,Python会自动保留最后一个,所以正确的初始数据应该是下面这样
data = [{"message": "Hello"}, {"message": ""}]
cleaned_data = [{k: "IMG" if k == "message" and v == "" else v for k, v in item.items()} for item in data]

另外提个小细节:你原来的data = [{"message" : "Hello", "message" : "" }]中,一个字典里重复定义了message键,Python会自动覆盖前面的键值对,最终这个字典会变成{"message": ""},如果是笔误的话,记得改成多个字典组成的列表哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 20:22:37