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

使用Tweepy提取一周Twitter数据并保存至CSV的报错解决

解决Tweepy批量提取一周Twitter数据并保存为CSV的问题

嘿,我来帮你搞定这个问题!你遇到的TypeError: 'Status' object is not iterable是因为代码里把单个的Tweet对象当成了可迭代的列表来处理,咱们一步步来修正:

错误原因分析

你写的tweets_to_data_frame1函数里,for tweets in tweepy.Cursor(...).items()这一行拿到的tweets其实是单个的Status对象(也就是单条推文),但你后面又写了for tweet in tweets,试图迭代这个单个对象,这就导致了报错——单个推文对象是不能被迭代的。

修正后的完整代码

咱们换个思路:先批量收集一周内的所有推文,再统一转换成DataFrame,这样既高效又不容易出错。

import tweepy
import pandas as pd
import numpy as np

# 先确保你已经完成了Tweepy的API认证,比如:
# auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
# auth.set_access_token(access_token, access_token_secret)
# api = tweepy.API(auth)

def tweets_to_data_frame(public_tweets):
    # 用列表收集每条推文的信息,比逐个生成数组更直观
    tweet_records = []
    for tweet in public_tweets:
        record = {
            'Tweets': tweet.text,
            'len': len(tweet.text),
            'date': tweet.created_at,
            'retweets': tweet.retweet_count,
            'lang': tweet.lang
        }
        tweet_records.append(record)
    
    # 把列表转换成DataFrame
    return pd.DataFrame(tweet_records)

# 设置查询关键词和时间范围
search_query = 'donald trump'
start_date = "2019-04-04"
end_date = "2019-04-07"

# 使用Cursor批量获取数据,count=100是单次请求的最大条数(符合Twitter API限制)
week_tweets = tweepy.Cursor(api.search, q=search_query, count=100, since=start_date, until=end_date).items()

# 转换为DataFrame并保存到CSV
df_week = tweets_to_data_frame(week_tweets)
df_week.to_csv('donaldtrump_week.csv', index=False)  # index=False避免生成多余的索引列

# 查看前15条数据
print(df_week.head(15))

关键修正点

  1. 调整数据收集逻辑:不再试图迭代单个推文对象,而是遍历Cursor返回的所有推文,逐个提取信息存入列表
  2. 简化DataFrame构建:用字典列表的方式收集数据,比原来的numpy数组方式更简洁,也更易维护
  3. 优化CSV保存:添加index=False参数,避免CSV里出现不必要的索引列

额外注意事项

  • Twitter标准API的搜索功能只能获取最近7天的公开推文,而且有速率限制,如果需要更早的数据可能需要使用高级API
  • 运行前确保你的API密钥和认证配置正确,避免因权限不足导致请求失败
  • 如果要提取大量数据,建议加入time.sleep()来控制请求频率,防止触发API限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:02:09