如何从pandas的labels列嵌套列表字典结构中提取choices对应值
实现代码
你可以通过pandas的apply方法逐行解析嵌套结构提取目标值,代码如下:
import pandas as pd # 带容错的提取函数,避免结构异常时报错 def extract_choice(label_cell): try: # 按嵌套层级逐层取值 return label_cell[0]["result"][0]["value"]["choices"] except (IndexError, KeyError, TypeError): # 结构不匹配时返回空列表,可按需修改默认值 return [] # 应用到labels列,得到提取结果 df["choices"] = df["labels"].apply(extract_choice)
如果你的数据结构完全固定不存在异常,也可以直接简化为一行代码:
df["choices"] = df["labels"].apply(lambda x: x[0]["result"][0]["value"]["choices"])
执行后直接打印df["choices"]即可得到你需要的输出格式。
取值层级说明
对应你的数据结构,逐层取值的逻辑是:
- 取
labels单元格外层列表的第一个元素,得到用户信息字典 - 取字典的
result字段,得到结果列表 - 取结果列表的第一个元素,得到标注结果字典
- 取标注结果字典的
value字段,再取choices字段即目标值
内容的提问来源于stack exchange,提问作者zzzTeee
相关产品推荐
相关产品推荐

