エポック秒(文字列)を日時に変換できない(;´Д`)[追記]できた!!

GET direct_messages/events/listを使って30日分取れるならと思ったが取れなかった。
途中でエラーで終わってしまう。

そしてエポック秒を日時に変換できない(;´Д`)

import datetime
import json
import sys
import time
import twitter
from my_config import *
#ファイルに書き込む関数
def writeFileLine(myfilename,dms):
f = open(myfilename, 'ab')
for dm in dms["events"]:
mText = '"' + dm['message_create']['message_data']['text'] + '"'
mSender = dm['message_create']['sender_id']
mRecipient = dm['message_create']['target']['recipient_id']
#変換失敗してる    
mCreated_at = datetime.date.fromtimestamp(int(dm['created_timestamp'][:6]))
f.write((mCreated_at.strftime("%Y/%m/%d,%H:%M:%S") + ',' + mSender + ',' + mRecipient + ',' + mText +'\n').encode("utf_8_sig", "ignore"))
f.close
return(dms['next_cursor'])
#初期設定
auth = twitter.OAuth(ACCESS_TOKEN, ACCESS_TOKEN_SECRET, CONSUMER_KEY, CONSUMER_SECRET_KEY)
t = twitter.Twitter(auth=auth)
#ファイルクリア
myfilename = 'DmGetter.csv'
f = open(myfilename, 'wb')
f.close
#受信取得 
try:
dms = t.direct_messages.events.list()
except:
print('失敗じゃ\n')
sys.exit()
if 'Error' in dms:
print('失敗じゃ\n' + dms)
lID = writeFileLine(myfilename,dms)
#2回目以降
while lID != 0:
try:
dms = t.direct_messages.events.list(cursor = lID)
except:
print('失敗じゃ\n')
sys.exit()
if 'Error' in dms:
print('失敗じゃ\n' + dms)
nID = writeFileLine(myfilename,dms)
if nID != lID:
lID = nID
else:
lID = 0

追記

#ファイルに書き込む関数
def writeFileLine(myfilename,dms):
f = open(myfilename, 'ab')
for dm in dms["events"]:
mText = '"' + dm['message_create']['message_data']['text'] + '"'
mSender = dm['message_create']['sender_id']
mRecipient = dm['message_create']['target']['recipient_id']
etime = int(dm['created_timestamp'][:10])
mCreated_at = datetime.datetime(*time.localtime(etime)[:6])
f.write((mCreated_at.strftime("%Y/%m/%d,%H:%M:%S")  + ',' + mSender + ',' + mRecipient + ',' + mText +'\n').encode("utf_8_sig", "ignore"))
f.close
return(dms['next_cursor'])

これでいけた。なんでかはわからん。10桁の整数にしてから6桁にしてるのかな?*1 謎だ・・・。最初から6桁にしたら昔の日付になるので10桁で(;´Д`)
ネタ元は
y0m0r.hateblo.jp

*1:違う、10桁をパラメーターにして、結果の6桁を使ってるんだ

どのくらい面白かった?

星を押して送信してね

平均 0 / 5. Vote count: 0

是非フォローしてください

最新の情報をお伝えします

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です