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

Python字典字符串转JSON遇json.loads双引号错误,如何解决?

JSON解析报错:Expecting property name enclosed in double quotes

问题描述

我有如下格式的JSON字符串:

{
            "intent": "catalog_search",
            "id": 1,
            "dependency": [],
            "args": {
                "text": "Could you please retrieve all table assets scanned before 1 hour?"
            }
        }

使用json.loads()处理时,出现错误:

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

明明所有键都用了双引号,也尝试移除首尾大括号,错误依旧,想知道是否存在格式错误?

排查与解决

出现这个错误,大概率是字符串里存在看不见的特殊字符,常见情况:

  • 全角空格、中文空格这类非标准空白字符
  • 隐藏的BOM(字节顺序标记),多出现于从特定编辑器复制或带BOM的文件读取场景

具体处理方法

  • 清理空白字符:把字符串里的缩进替换成标准半角空格或Tab,确保所有空白都是ASCII范围内的空格( )或Tab(\t)
  • 移除BOM(文件读取场景):如果是从文件读取JSON字符串,用utf-8-sig编码读取,示例代码:
    with open('target_file.json', 'r', encoding='utf-8-sig') as f:
        json_content = f.read()
    parsed_data = json.loads(json_content)
    
  • 校验JSON有效性:用Python自带工具验证字符串格式,执行命令:
    echo '你的JSON字符串内容' | python -m json.tool
    
    工具会直接指出格式问题的具体位置。

你提供的这段JSON本身语法是正确的,问题出在实际传入json.loads()的字符串中存在隐藏异常字符,并非代码里显示的这段内容的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:35:08