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

如何在Python中删除字典内的多余无效字符(如\u20)

Python字典\u20无效字符清洗实现方法

核心逻辑

  • \u20是Unicode空格类字符,单条字符串直接调用replace('\u20', '')即可完成清理
  • 针对列表嵌套字典、字典值包含字符串列表的多层结构,用递归函数逐层处理所有字符串类型值即可适配

实现代码

首先修正你给出的原始示例数据的语法问题(原示例存在缺单引号、缺逗号的语法错误),再执行清洗:

# 修正语法后的原始数据
raw_data = [
    {
        'title': 'title1',
        'tags': ['data mining\u20', 'data mining', 'test\u20', 'data mining', 'test1']
    },
    {
        'title': 'title2',
        'tags': ['title2', 'data mining\u20']
    }
]

# 通用递归清洗函数,支持任意嵌套层级的列表/字典结构
def clean_value(value):
    if isinstance(value, str):
        # 替换\u20,额外加strip可同时清理首尾多余空白字符
        return value.replace('\u20', '').strip()
    elif isinstance(value, list):
        return [clean_value(item) for item in value]
    elif isinstance(value, dict):
        return {key: clean_value(val) for key, val in value.items()}
    # 其他数据类型直接返回
    return value

# 执行清洗
processed_data = clean_value(raw_data)

# 打印验证结果
print(processed_data)

输出结果

运行后得到的清洗后数据如下:

[
    {'title': 'title1', 'tags': ['data mining', 'data mining', 'test', 'data mining', 'test1']},
    {'title': 'title2', 'tags': ['title2', 'data mining']}
]

如果你需要把title2替换为test这类额外过滤逻辑,可以在字符串处理分支添加对应判断规则即可。

扩展优化

如果需要同时清理其他常见无效Unicode字符(如零宽空格\u200b、字节顺序标记\ufeff等),可以把字符串处理逻辑替换为正则匹配:

import re
def clean_value(value):
    if isinstance(value, str):
        return re.sub(r'[\u200b-\u200f\ufeff\u20]', '', value).strip()
    # 其余逻辑保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:45:05