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

如何通过Twitter API提取推文计数值并保存至文件?

如何从Twitter API的推文计数结果中提取仅推文计数值并保存到文件?

我正在开发一个通过Twitter API统计特定关键词每小时推文提及次数的程序,目前已实现数据输出功能,代码如下:

from operator import truediv
from urllib import response
import tweepy
import config
import datetime

client = tweepy.Client(bearer_token=config.BEARER_TOKEN)

query = 'Python'

counts = client.get_recent_tweets_count(query=query,
                                        granularity='hour',
                                        start_time='2022-08-27T13:00:00+05:00',
                                        end_time='2022-08-27T14:00:00+05:00')

for count in counts.data:
    print(count)

该代码会输出查询的起止时间及对应小时的推文计数,示例输出如下:

{'end': '2022-08-27T09:00:00.000Z', 'start': '2022-08-27T08:00:00.000Z', 
'tweet_count': 2067}

但我希望仅提取推文计数值并保存到文件,请问该如何实现?


解决方案

1. 提取推文计数值

返回的count对象是字典结构,直接通过键名tweet_count即可提取对应数值:

tweet_count = count['tweet_count']

2. 保存到文件

下面提供两种实用的保存方式,根据你的需求选择:

方式一:仅保存纯计数值(逐行写入)

适合只需要数值的场景,每个时间段的计数占一行:

from operator import truediv
from urllib import response
import tweepy
import config
import datetime

client = tweepy.Client(bearer_token=config.BEARER_TOKEN)

query = 'Python'

counts = client.get_recent_tweets_count(query=query,
                                        granularity='hour',
                                        start_time='2022-08-27T13:00:00+05:00',
                                        end_time='2022-08-27T14:00:00+05:00')

# 打开文件,'w'表示覆盖写入,'a'表示追加写入
with open('tweet_counts.txt', 'w', encoding='utf-8') as f:
    for count in counts.data:
        tweet_count = count['tweet_count']
        f.write(f"{tweet_count}\n")
        print(f"已保存计数:{tweet_count}")

方式二:保存为CSV格式(关联时间段)

如果需要保留时间段与计数的对应关系,CSV格式更便于后续数据分析:

from operator import truediv
from urllib import response
import tweepy
import config
import datetime
import csv

client = tweepy.Client(bearer_token=config.BEARER_TOKEN)

query = 'Python'

counts = client.get_recent_tweets_count(query=query,
                                        granularity='hour',
                                        start_time='2022-08-27T13:00:00+05:00',
                                        end_time='2022-08-27T14:00:00+05:00')

with open('tweet_counts.csv', 'w', newline='', encoding='utf-8') as csvfile:
    fieldnames = ['开始时间', '结束时间', '推文计数']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    
    writer.writeheader()  # 写入表头
    for count in counts.data:
        writer.writerow({
            '开始时间': count['start'],
            '结束时间': count['end'],
            '推文计数': count['tweet_count']
        })
print("CSV文件已保存完成")

关键提示

  • 使用with open()语句会自动处理文件的打开与关闭,避免资源泄漏。
  • 若未指定文件路径,文件会保存在当前脚本的运行目录下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:18:27