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

如何格式化JSON字符串以调用.get()方法?解决json.loads解析异常

问题描述

有一个包含print输出信息与JSON结构的字符串,print输出内容如下:

print("json str:", type(json_str), json_str)
        
json str: <class 'str'> json

{
    "word": [
        "table name"
    ]
}

运行以下代码时抛出异常:

import json

json.loads(json_str).get('word')

异常信息:

Exception Expecting value: line 1 column 1 (char 0) 

需要格式化该字符串,使其可正常调用.get()方法。

解决方法
  • 提取纯JSON内容
    原始字符串混杂了json str: <class 'str'> json这类非JSON格式的冗余内容,json.loads()只能解析标准JSON结构,因此必须先提取出从{开始到}结束的纯JSON片段。
  • 解析并调用方法
    对提取后的纯JSON字符串进行解析,即可正常使用.get()方法获取目标值。

示例代码:

import json

# 原始带冗余内容的字符串
raw_str = '''json str: <class 'str'> json

{
    "word": [
        "table name"
    ]
}'''

# 方法一:通过分割字符串提取JSON
pure_json = raw_str.split('json\n\n')[1]

# 方法二:通过索引定位提取JSON(适配更多场景)
start_pos = raw_str.find('{')
end_pos = raw_str.rfind('}') + 1
pure_json = raw_str[start_pos:end_pos]

# 解析并获取目标值
data = json.loads(pure_json)
print(data.get('word'))  # 输出:['table name']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:17:20