2

私はTwitterからこの日付を持っています:

created_at = "Wed Aug 29 17:12:58 +0000 2012"

次のようなものを使用して時間に変換したい:

time.mktime(created_at)

しかし、私はこのエラーが発生します:

TypeError: argument must be 9-item sequence, not str

私は何を間違っていますか?

4

3 に答える 3

7

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"))
于 2013-09-04T03:20:50.897 に答える
1

遅すぎる場合は、代わりに矢印パッケージを使用すると、インポートが少なくなり、コードが大幅に少なくなります

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
于 2014-11-09T09:58:01.997 に答える
0

のドキュメントを読むtime.mktime

が必要struct_timeです。または、代わりに 9 タプルを使用して表すこともできます。

必要なエントリは次のとおりです。

  1. 日にち
  2. 時間
  3. 2番
  4. 曜日
  5. 年中日
  6. サマータイム

ただし、これは必要な機能ではありません。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)
于 2013-09-04T03:18:17.190 に答える