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

Python中使用json.loads转换字符串遇JSONDecodeError: Extra data问题

解决JSONDecodeError:将给定字符串转换为JSON对象

问题原因

你输入的字符串不是合法的JSON格式——它只是一个单独的键值对,缺少JSON对象必需的外层{}包裹,这才导致json.loads抛出Extra data错误。

解决方案

给字符串添加外层大括号,将其转换为完整的JSON对象格式,再进行解析。你提供的字符串内部的单引号无需转义,JSON允许字符串内包含单引号,不会破坏结构。

代码示例

import json

# 原始字符串
raw_str = '"Error":"Execution failed on sql \'SELECT * FROM tablename\': (\'HYT00\', \'[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Query timeout expired (0) (SQLExecDirectW)\')"'

# 补全外层大括号,转为合法JSON字符串
valid_json_str = f'{{{raw_str}}}'

# 解析JSON
try:
    json_obj = json.loads(valid_json_str)
    print(json_obj)
except json.JSONDecodeError as e:
    print(f"解析错误: {e}")

输出结果

{'Error': "Execution failed on sql 'SELECT * FROM tablename': ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Query timeout expired (0) (SQLExecDirectW)')"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:42:02