如何在Python字典中移除特殊字符
问题原因
- 你定义的
output是列表嵌套字典的结构,无法直接通过output['title']读取字段,列表仅支持整数索引,需要先遍历列表拿到每个字典元素 - 你写的推导式语法不合法,且待处理的
title本身是字符串类型,无需迭代每个字符,直接对整个字符串调用replace方法即可 - 示例中
subject字段存在两种格式(单个字符串/字符串列表,且你给出的示例第一条subject存在语法错误,默认修正为列表类型处理),需要兼容不同类型做处理
实现代码
首先修正后的合法示例数据:
output = [ {'title': 'title 1', 'subject': ['subject1','a']}, {'title': 'title 1', 'subject': ['subject1','a','b']} ]
处理逻辑:
def remove_u200c(value): # 处理字符串类型 if isinstance(value, str): return value.replace("\u200c", "") # 处理字符串列表 elif isinstance(value, list): return [remove_u200c(item) for item in value] # 其他类型直接返回 return value # 遍历列表中的每个字典 for dict_item in output: dict_item['title'] = remove_u200c(dict_item['title']) dict_item['subject'] = remove_u200c(dict_item['subject'])
验证效果
执行后打印output即可看到所有字段中的\u200c零宽字符已被移除:
print(output) # 输出: # [{'title': 'title 1', 'subject': ['subject1', 'a']}, {'title': 'title 1', 'subject': ['subject1', 'a', 'b']}]
内容的提问来源于stack exchange,提问作者user12217822
相关产品推荐
相关产品推荐

