Python调用tweepy的search_full_archive接口报SyntaxError语法错误如何解决
问题根源
- 直接触发
SyntaxError的原因是for循环语句末尾缺少Python语法强制要求的冒号: - 同时存在两个会导致后续API调用失败的隐性错误:
- 参数拼写错误:
search_full_archive方法要求的环境参数为environment_name,你误写为enviroment_name,缺少字母n会导致API无法识别你的开发环境 - 时间参数格式不统一:该接口要求
fromDate、toDate都传入12位的YYYYMMDDHHMM格式字符串,你初始代码中toDate仅填写了8位的20210706,会导致时间范围匹配异常
- 参数拼写错误:
- 你尝试的时间戳转换逻辑没有实际作用:Twitter全档案搜索接口本身仅识别指定格式的字符串类型时间,不需要传入时间戳
修正后可运行代码
import tweepy # 此处省略你自己的API身份认证逻辑 data = [] # 已补全冒号、修正参数名、统一时间格式 for user in tweepy.Cursor( api.search_full_archive, environment_name='Understanding', query='((PAN AND Nuevo León) OR (Partido Accion Nacional AND Nuevo León) OR (PAN AND Monterrey) OR (Partido Acción Nacional AND Monterrey))', fromDate='202105060000', toDate='202107060000' ).items(10): data.append(user._json)
更稳妥的时间参数生成方式
不需要手动拼接时间字符串,可通过datetime直接生成符合要求的格式,避免拼写错误:
from datetime import datetime start_time = datetime(2021, 5, 6, 0, 0) end_time = datetime(2021, 7, 6, 0, 0) fromDate = start_time.strftime("%Y%m%d%H%M") toDate = end_time.strftime("%Y%m%d%H%M")
内容的提问来源于stack exchange,提问作者The Student
相关产品推荐
相关产品推荐

