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
相关产品推荐
相关产品推荐

