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

如何从表格列的类字典列表格式字符串中提取label=1对应的prob数值

提取label为1对应prob数值的实现方案

核心思路有两种:一是将类JSON字符串转换为合法结构后解析取值,二是用正则直接匹配目标值,适配不同使用场景的操作方法如下:

方法1:Python解析取值(最稳妥,无匹配误差)

import json

# 替换为你的原始字符串/表格字段取值
raw_str = "[{'label': 1, 'prob': 0.5001602182558444}, {'label': 0, 'prob': 0.49983978174415555}]"
# 替换单引号为双引号,转为合法JSON格式
json_str = raw_str.replace("'", "\"")
# 解析为列表对象
data_list = json.loads(json_str)
# 匹配label为1的项,取出prob值
target_prob = next(item['prob'] for item in data_list if item['label'] == 1)
print(target_prob)

运行输出:0.5001602182558444

方法2:正则匹配(适合快速提取场景)

直接通过正则定位label为1的分组后的prob数值,不需要解析完整结构,适配空格不统一的鲁棒写法如下:

import re

raw_str = "[{'label': 1, 'prob': 0.5001602182558444}, {'label': 0, 'prob': 0.49983978174415555}]"
# 正则适配键值之间的任意空格,避免格式不统一导致匹配失败
match_res = re.search(r"'label'\s*:\s*1\s*,\s*'prob'\s*:\s*(\d+\.\d+)", raw_str)
if match_res:
    target_prob = float(match_res.group(1))
    print(target_prob)

方法3:SQL场景直接提取(适配表格字段批量处理)

如果是处理数据库/数仓表中的该列数据,直接用SQL自带的正则提取函数即可,以Hive/Spark SQL为例:

select 
    regexp_extract(目标列名, "'label'\\s*:\\s*1\\s*,\\s*'prob'\\s*:\\s*(\\d+\\.\\d+)", 1) as label1_prob
from 你的表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:48:01