使用Openpyxl写入推特数据时重复写入首条内容的问题求助
解决Tweepy爬取推特数据写入Excel重复写入第一条的问题
看起来你遇到的问题很典型——测试打印数据都正常,但写入Excel时只会重复第一条推特的内容。咱们先拆解一下你的代码问题出在哪,再给出修复方案。
问题根源分析
你的第二个代码块里有两个核心逻辑错误:
- 不必要的嵌套循环+break语句:你在外层遍历每条推特,内层又循环Excel行,还加了
break,导致每条推特都覆盖第3行的内容,自然只会看到第一条数据重复。 - 没有动态跟踪写入行号:你没有随着推特的遍历递增行号,而是每次都固定从某个行范围开始,无法实现依次写入新行。
修复方案
我们需要去掉冗余的嵌套循环,用一个变量来动态跟踪当前要写入的行号,每处理一条推特就把行号加1。具体代码如下:
# 初始化起始行号,和你原来的逻辑保持一致,从第3行开始 current_row = 3 # 遍历获取到的每条推特 for tweet in tweepy.Cursor(api.search, search).items(numberOfTweets): # 写入创建时间到第1列 sheet.cell(row=current_row, column=1).value = tweet.created_at # 写入用户名到第2列 sheet.cell(row=current_row, column=2).value = tweet.user.screen_name # 写入推文内容到第3列 sheet.cell(row=current_row, column=3).value = tweet.text # 行号自增,准备写入下一条推特 current_row += 1 # 记得最后保存Excel文件,以openpyxl为例 # wb.save("your_twitter_data.xlsx")
补充说明
- 这样每处理一条推特,就会自动写到下一行,不会覆盖之前的内容
- 务必记得最后调用保存方法,否则Excel文件不会记录你的修改
内容的提问来源于stack exchange,提问作者user9506619
相关产品推荐
相关产品推荐

