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

Python Twint库调用时报ValueError时间格式不匹配错误如何解决

问题解决方法:twint时间解析ValueError错误

错误根因

你遇到的报错不是目标用户未发帖,是twint内置的时间解析逻辑触发了异常:
Twitter返回的推文发布时间里的时区字段(对应格式中的%Z)在本地化环境下出现编码异常,变成了乱码问号,和预设的时间格式%Y-%m-%d %H:%M:%S %Z匹配失败,被你的全局异常捕获逻辑误判为“用户未发帖”。

解决方案

  • 方案1:修改运行环境的时区和语言配置,在代码最开头添加如下代码,强制使用英文UTC环境解析时间:
import os
import time
os.environ['TZ'] = 'UTC'
os.environ['LANG'] = 'en_US.UTF-8'
time.tzset()
  • 方案2:如果方案1无效,修改twint源码的时间解析逻辑:
    找到twint安装目录下的twint/tweet.py文件,定位到解析时间字符串的代码行,将时间字符串截断到前19位(仅保留年月日时分秒部分),同时去掉格式参数里的%Z,示例修改如下:
# 原代码大概结构如下
# created_at = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S %Z')
# 修改为
time_str = time_str[:19]
created_at = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
  • 方案3:不想修改源码的话,调整查询配置绕过内置时间解析:
    关闭Pandas模式,将结果输出到临时JSON文件,自行读取JSON处理内容,避免触发twint的自动时间解析逻辑。

额外优化建议

你的现有代码捕获了所有类型的异常,会把网络错误、权限错误等其他问题都误判为用户未发帖,建议调整异常捕获逻辑,仅在确认返回为空时输出该提示,或者细分异常类型判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 23:30:01