事象
Pythonにて日付の比較情報が入った変数(td)に対して
3 days, 19:30:47.170090
if文で部分一致をしかけるとエラーとなる
if 'days' in td:
エラーとなる。
Traceback (most recent call last): File "test.py", line 37, in <module> if 'days' in td: TypeError: argument of type 'datetime.timedelta' is not iterable
環境情報
Python 2.7.13
原因/解決策
datetimeに対して文字列操作を行ったため。
よって以下のようにdatetimeを文字列に変換した上で
td_s=str(td)
if文の中に入れることで正常に処理される。
if 'days' in td_s:
以下、補足です。
補足
ツイートの時刻情報と現在の時刻情報の差分が1日以上離れているものを削除する際に利用しました。
#coding: UTF-8 import sys import datetime import tweepy ... for tweet in tweets: dt1 = tweet.created_at td = dt_now - dt1 td_s=str(td) if 'days' in td_s: api.destroy_status(tweet.id)
日付の差分データは以下のように出力されるので
18:23:56.170090 3 days, 19:30:47.170090 47 days, 22:17:50.170090
daysの有無で判定しました。