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

如何使用Python移除爬取生成的JSON文件中“类多余特殊字符

解决方法

你遇到的\u201c、\u201d是Unicode编码的左右双引号,属于特殊Unicode字符,如果你需要移除这类字符,或者替换为普通半角标点,可使用以下两种方案:

方案1:读取JSON后定向清理指定特殊字符

直接用Python内置json模块读取文件,对字符串字段做定向替换,适合需要保留其他非ASCII字符的场景:

import json

# 读取原始JSON文件,路径替换为你自己的文件路径
with open("raw_data.json", "r", encoding="utf-8") as f:
    data = json.load(f)

def clean_text(text):
    # 可自行补充不需要的特殊字符到列表中
    unwanted_chars = [
        "\u201c", # 左双引号
        "\u201d", # 右双引号
        "\u2018", # 左单引号
        "\u2019", # 右单引号
        "\xa0",   # 非断空白字符
    ]
    for char in unwanted_chars:
        text = text.replace(char, "")
        # 如果需要替换为普通标点,把上方的""改成对应字符即可,比如替换引号就写'"'
    return text

# 遍历数据清理,根据你的JSON结构调整遍历逻辑
for item in data:
    if "quote_text" in item:
        item["quote_text"] = clean_text(item["quote_text"])
    # 其他需要清理的字段可在此处补充逻辑

# 保存清理后的JSON
with open("cleaned_data.json", "w", encoding="utf-8") as f:
    # ensure_ascii=False 可避免输出的JSON再次出现\uXXXX格式的转义字符
    json.dump(data, f, ensure_ascii=False, indent=2)

方案2:正则批量清理所有非ASCII字符

如果你的业务场景只需要保留英文字母、数字、普通半角标点,可直接用正则过滤所有非ASCII范围的字符:

import re
import json

with open("raw_data.json", "r", encoding="utf-8") as f:
    data = json.load(f)

def clean_text_regex(text):
    # 仅保留ASCII范围内的可见字符,可根据需求调整正则规则
    return re.sub(r'[^\x00-\x7F]+', '', text)

for item in data:
    item["quote_text"] = clean_text_regex(item["quote_text"])

with open("cleaned_data.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

注意事项

  • 读写JSON文件时必须指定encoding="utf-8",避免编码混乱生成新的转义字符
  • 写入JSON时添加ensure_ascii=False参数,可让文件直接存储UTF-8字符,不会自动转义为\uXXXX格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 17:30:04