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

