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

使用Python生成含马拉地语的JSON文件出现不可读内容求解决方案

问题根因

代码存在两处错误导致文件内容异常:

  • 执行json.dumps(x, ensure_ascii=False)后额外调用了encode('utf8'),将JSON字符串转换为了bytes类型
  • 写入文件时使用str(y)强制转换bytes对象,直接把bytes类型的标识b'和十六进制转义字符写入了文件,而非实际的UTF-8编码字符
解决方案

修改后可正常生成包含马拉地语的JSON文件的代码如下:

import os
import json

jsonFilePath = "E:/file/"
captchaImgLocation = "E:/file/captchaimg/"

path_to_tesseract = r"C:/Program Files/Tesseract-OCR/tesseract.exe"
image_path = r"E:/file/captchaimg/captcha.png"

x = {
    "FName": "प्रवीण",
}

# 直接生成保留非ASCII字符的JSON字符串
y = json.dumps(x, ensure_ascii=False)

print(y)

completeName = os.path.join(jsonFilePath, "searchResult_Unicode.json")
print(completeName)
# 打开文件时显式指定UTF-8编码,避免系统默认编码导致乱码
with open(completeName, "w", encoding="utf-8") as file1:
    file1.write(y)

核心修改点

  • 移除了多余的encode('utf8')操作,直接使用json.dumps输出的字符串内容
  • 打开文件时显式指定encoding="utf-8",规避Windows系统默认编码不支持非ASCII字符的问题
  • 改用with语句管理文件句柄,自动处理文件关闭逻辑,避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:57:01