私はTwitterからこの日付を持っています:
created_at = "Wed Aug 29 17:12:58 +0000 2012"
次のようなものを使用して時間に変換したい:
time.mktime(created_at)
しかし、私はこのエラーが発生します:
TypeError: argument must be 9-item sequence, not str
私は何を間違っていますか?
strptime
何かを行う前に、受信文字列を Python 時間タプルに変換する必要があります。
このコードは、入力文字列を受け取り、それをタプルに変換してから、次を使用して Unix エポック時間浮動小数点数に変換しtime.mktime
ます。
import time
created_at = "Wed Aug 29 17:12:58 +0000 2012"
print time.mktime(time.strptime(created_at,"%a %b %d %H:%M:%S +0000 %Y"))
遅すぎる場合は、代わりに矢印パッケージを使用すると、インポートが少なくなり、コードが大幅に少なくなります。
pip install arrow
それで:
>>> arrow.Arrow.strptime("Wed Aug 29 17:12:58 +0000 2012", "%a %b %d %H:%M:%S %z %Y")
<Arrow [2012-08-29T17:00:58+00:00]>
>>> arrow.Arrow.strptime("Wed Aug 29 17:12:58 +0000 2012", "%a %b %d %H:%M:%S %z %Y").timestamp
1346259658
のドキュメントを読むtime.mktime
が必要struct_time
です。または、代わりに 9 タプルを使用して表すこともできます。
必要なエントリは次のとおりです。
ただし、これは必要な機能ではありません。strptime
代わりに使いたいようです。
ドキュメントによると:
形式に従って時刻を表す文字列を解析します。 戻り値は、gmtime() または localtime() によって返される struct_time です。 >>> 輸入時期 >>> time.strptime("30 Nov 00", "%d %b %y") time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0、tm_wday=3、tm_yday=335、tm_isdst=-1)
したがって、次のことができます。
time.strptime(created_at)