##質問
Pythonで以下のように日時フィールドを編集したいですが、変換するための条件(正規表現など?)や手法を自力で考えている時点で詰まっています。レコード行数は500行くらいです。ヒントなどお教えいただけますでしょうか。
処理前: "Tue, 07 Apr 2020 23:00:00 +0900" ↓ 処理後: "2020-04-07T23:00:00.000+09:00"
##経緯
CSVのデータ整理、標準化、クレンジングを目的として、とあるCSVレコードセットの日時形式変換を試みています。
##環境
Python 3.8.3
OS: Windows 10
どうぞよろしくお願い申し上げます。
###追記1(途中経過報告)
皆様ご回答いただき誠にありがとうございます!現状、以下コードのように0CSVから読み込んだ特定カラムのフィールドの文字列をjeanbiegoさんから教えていただいた方法で別の日時形式に変換するところまではできました。まだできてない処理は、この変換した日時形式の文字列で同フィールドを上書きする操作です。おそらくcsv.writerあたりを使用するのだろうと思いますが実装できないでいます。
また、全体のワークフローとして500レコードくらいのCSVを入手したところからCSVを編集する流れです。DBで直接編集はしない/できないという前提をイメージしていただければと思います。
引き続き試行錯誤してみます。ヒントなどございましたら、どうぞよろしくお願い申し上げます。
Python
1# -*- coding: utf-8 -*- 2import csv 3import datetime 4 5source = 'data\test.csv' 6with open(source, encoding="UTF-8") as f: 7 reader = csv.reader(f) 8 for row in reader: 9 try: 10 print(row[0]) 11 date_dt = datetime.datetime.strptime(row[0], "%a, %d %b %Y %H:%M:%S %z") 12 date_con = date_dt.strftime("%Y-%m-%dT%H:%M:%S:%f %z") 13 print(date_con) 14 row[0] = date_con 15 # ↓ここから先が未完成(row[0]に代入した変換済み日時データで同フィールドを上書きする操作) 16 17 except ValueError as error: 18 print(error) 19 pass
回答2件
あなたの回答
tips
プレビュー