4

機能に問題がありwriterow()ます。私はこのようなオブジェクト(orders_matrix)を持っています:

[[datetime.datetime(2008, 11, 20, 16, 0), 'AA', 'Buy', '100'],     
[datetime.datetime(2008, 11, 28, 16, 0), 'AA', 'Sell', '100'],
[datetime.datetime(2009, 2, 17, 16, 0), 'AA', 'Buy', '100']]

次のようにCSV形式で記述します。

2008,11,20,AA,Buy,100,
2008,11,28,AA,Sell,100,
2009,2,17,AA,Buy,100,

writerow()forループで関数を使用しようとしました:

with open('orders.csv', 'w') as orders_file:
  writer = csv.writer(orders_file)
  for row in orders_matrix:
    writer.writerow([row[:4], row[5:7], row[8:10], row[11:]])

しかし、日時オブジェクトを変換して他の要素を追加することはできませんでした。それが可能かどうか、そしてその方法を知りたいのですが。

4

2 に答える 2

5

datetimeオブジェクトのyear、month、dayプロパティを使用して、関連する値を取得できます。したがって、最後の行は次のように変更される可能性があります。

writer.writerow([row[0].year, row[0].month, row[0].day, row[1], row[2], row[3]])
于 2013-01-01T17:35:48.240 に答える
2

datetime.timetupleを使用してdatetimeオブジェクトをstruct_timeオブジェクトに変換し、リストに変換した後に必要な情報を切り出すことができます

with open("orders.csv", "wb") as fin:
    writer = csv.writer(fin)
    for row in orders_matrix:
        writer.writerow(list(row[0].timetuple())[:3] + row[1:])
于 2013-01-01T18:10:10.090 に答える