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

Python解析JSON文件报期望属性名用双引号包裹解码错误如何解决?

问题原因

JSON官方语法规范强制要求所有对象的属性名称必须使用双引号"包裹,该报错直接指向你的buffy.json文件存在不符合规范的写法,常见的违规场景包括:

  • 属性名使用单引号'包裹,比如{'name': 'Buffy'}为非法格式
  • 属性名未添加任何引号包裹,比如{name: 'Buffy'}为非法格式
  • 对象或数组末尾存在多余的尾随逗号,比如{"name": "Buffy", "age": 17,}末尾的逗号也会触发同类解析错误
解决方法

根据你是否能修改源JSON文件分为两种处理方案:

可修改JSON源文件

直接按照JSON规范修正文件内所有违规写法即可,修正后你原有代码即可正常运行。合法的JSON属性名必须用双引号包裹,字符串值也推荐统一使用双引号包裹,删除所有不必要的尾随逗号。

不可修改JSON源文件

若JSON文件为第三方输出无法修改,可使用容错性更高的demjson3库完成解析:

  1. 安装依赖库
pip install demjson3
  1. 替换原有解析代码
import demjson3

with open('buffy.json', 'r', encoding='utf-8') as f:
    json_content = f.read()
pythonJson = demjson3.decode(json_content)

该库可兼容单引号属性名、无引号属性名、尾随逗号等多种非标准JSON写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:27:04