从Pandas的字典列表列中提取Name为Title对应的Value值
错误原因
- 你当前
title列的列表是字符串格式,不是Python原生的列表/字典对象,直接调用.get()方法会触发字符串无该属性的报错 - 即使转成原生对象,
title列的元素是列表,列表中才存储字典,直接对列表调用.get()同样会报错
实现代码
首先导入依赖库:
import pandas as pd import ast
步骤1:将字符串格式的列表转为Python原生对象
df['title'] = df['title'].apply(lambda x: ast.literal_eval(x) if isinstance(x, str) else x)
步骤2:提取目标字段
可以用自定义函数实现,逻辑更清晰:
def extract_title(lst): for item in lst: if item.get('Name') == 'Title': return item.get('Value', '') return '' df['title'] = df['title'].apply(extract_title)
也可以写成单行lambda版本:
df['title'] = df['title'].apply(lambda x: next((item['Value'] for item in x if item.get('Name') == 'Title'), ''))
运行后即可得到你需要的预期输出结果。
内容的提问来源于stack exchange,提问作者james
相关产品推荐
相关产品推荐

