如何从Twitter API的JSON响应中提取特定文本并整理为DataFrame
从Twitter API返回的JSON中提取字段并整理为DataFrame/列表/字典
1. 提取字段并整理为字典列表
你可以在遍历响应的过程中直接提取需要的text和tag字段,将它们封装成字典存入列表,后续处理更灵活。修改后的代码如下:
import json # 若要转DataFrame需导入pandas import pandas as pd processed_tweets = [] for response_line in response.iter_lines(): if response_line: json_response = json.loads(response_line) # 提取推文内容 text = json_response['data']['text'] # 提取所有匹配的标签(matching_rules是列表,遍历取出每个规则的tag) tags = [rule['tag'] for rule in json_response['matching_rules']] # 若只需要第一个匹配的标签,可改为:tags = json_response['matching_rules'][0]['tag'] # 将字段存入字典并加入列表 processed_tweets.append({ 'text': text, 'tag': tags })
此时processed_tweets就是包含目标字段的字典列表,结构示例:
[ {'text': 'Waiting 😃......', 'tag': ['bitcoin']}, # 更多推文数据... ]
2. 转换为DataFrame(最理想格式)
字典列表可以直接通过pandas转换为DataFrame,方便后续做数据分析、筛选、导出等操作:
df = pd.DataFrame(processed_tweets)
转换后的DataFrame结构示例:
| text | tag |
|---|---|
| Waiting 😃...... | [bitcoin] |
| (其他推文内容) | (对应标签) |
3. 特殊情况处理
如果单条推文匹配了多个规则(matching_rules包含多个元素),上面的代码会把所有标签存入列表;如果业务只需要单个标签,直接修改标签提取逻辑即可,比如取第一个匹配规则的标签。
内容的提问来源于stack exchange,提问作者Max Allen
相关产品推荐
相关产品推荐

