Python如何从已爬取推特entities字段的嵌套字典中提取hashtag值
Python提取推特数据entities字段中hashtag的方法
首先确保df['entities']字段存储的是Python字典对象,而非JSON字符串。如果是字符串格式,先执行类型转换:
import ast # 转换字符串格式的字典为Python字典 df['entities'] = df['entities'].apply(lambda s: ast.literal_eval(s) if isinstance(s, str) else s)
之后直接通过列表推导遍历每个条目下的hashtags列表,取出每个元素的text值即可得到目标结果:
# 提取hashtag生成新列 df['hashtags'] = df['entities'].apply(lambda x: [tag['text'] for tag in x['hashtags']])
如果需要提升代码鲁棒性,避免部分结构异常的条目报错,可以使用带校验的写法:
df['hashtags'] = df['entities'].apply( lambda x: [tag['text'] for tag in x.get('hashtags', []) if isinstance(tag, dict) and 'text' in tag] )
运行后得到的df['hashtags']列就和你期望的输出格式完全一致。
内容的提问来源于stack exchange,提问作者shan
相关产品推荐
相关产品推荐

