teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

説明追記

2020/08/27 05:49

投稿

fukazume
fukazume

スコア78

title CHANGED
File without changes
body CHANGED
@@ -21,8 +21,10 @@
21
21
  どうぞよろしくお願い申し上げます。
22
22
 
23
23
  ###追記1(途中経過報告)
24
- 皆様ご回答いただき誠にありがとうございます!現状、以下コードのように0CSVから読み込んだ特定カラムのフィールドの文字列をjeanbiegoさんから教えていただいた方法で別の日時形式に変換するところまではできました。まだできてない処理は、この変換した日時形式の文字列で同フィールドを上書きする動きです。おそらくcsv.writerあたりを使用するのだろうと思いますが実装できないでいます。
24
+ 皆様ご回答いただき誠にありがとうございます!現状、以下コードのように0CSVから読み込んだ特定カラムのフィールドの文字列をjeanbiegoさんから教えていただいた方法で別の日時形式に変換するところまではできました。まだできてない処理は、この変換した日時形式の文字列で同フィールドを上書きする操作です。おそらくcsv.writerあたりを使用するのだろうと思いますが実装できないでいます。
25
25
 
26
+ また、全体のワークフローとして500レコードくらいのCSVを入手したところからCSVを編集する流れです。DBで直接編集はしない/できないという前提をイメージしていただければと思います。
27
+
26
28
  引き続き試行錯誤してみます。ヒントなどございましたら、どうぞよろしくお願い申し上げます。
27
29
 
28
30
 
@@ -41,7 +43,7 @@
41
43
  date_con = date_dt.strftime("%Y-%m-%dT%H:%M:%S:%f %z")
42
44
  print(date_con)
43
45
  row[0] = date_con
44
- # ↓ここから先が未完成
46
+ # ↓ここから先が未完成(row[0]に代入した変換済み日時データで同フィールドを上書きする操作)
45
47
 
46
48
  except ValueError as error:
47
49
  print(error)

2

書式改善

2020/08/27 05:48

投稿

fukazume
fukazume

スコア78

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  ##質問
2
- Pythonで以下のように日時フィールドを編集したいですが、変換するための条件(正規表現など?)や手法を自力で考えている時点で詰まっています。行数は500行くらいです。ヒントなどお教えいただけますでしょうか。
2
+ Pythonで以下のように日時フィールドを編集したいですが、変換するための条件(正規表現など?)や手法を自力で考えている時点で詰まっています。レコード行数は500行くらいです。ヒントなどお教えいただけますでしょうか。
3
3
 
4
4
 
5
5
  ```

1

追記

2020/08/27 05:41

投稿

fukazume
fukazume

スコア78

title CHANGED
File without changes
body CHANGED
@@ -18,4 +18,32 @@
18
18
  Python 3.8.3
19
19
  OS: Windows 10
20
20
 
21
- どうぞよろしくお願い申し上げます。
21
+ どうぞよろしくお願い申し上げます。
22
+
23
+ ###追記1(途中経過報告)
24
+ 皆様ご回答いただき誠にありがとうございます!現状、以下コードのように0CSVから読み込んだ特定カラムのフィールドの文字列をjeanbiegoさんから教えていただいた方法で別の日時形式に変換するところまではできました。まだできてない処理は、この変換した日時形式の文字列で同フィールドを上書きする動きです。おそらくcsv.writerあたりを使用するのだろうと思いますが実装できないでいます。
25
+
26
+ 引き続き試行錯誤してみます。ヒントなどございましたら、どうぞよろしくお願い申し上げます。
27
+
28
+
29
+ ```Python
30
+ # -*- coding: utf-8 -*-
31
+ import csv
32
+ import datetime
33
+
34
+ source = 'data\test.csv'
35
+ with open(source, encoding="UTF-8") as f:
36
+ reader = csv.reader(f)
37
+ for row in reader:
38
+ try:
39
+ print(row[0])
40
+ date_dt = datetime.datetime.strptime(row[0], "%a, %d %b %Y %H:%M:%S %z")
41
+ date_con = date_dt.strftime("%Y-%m-%dT%H:%M:%S:%f %z")
42
+ print(date_con)
43
+ row[0] = date_con
44
+ # ↓ここから先が未完成
45
+
46
+ except ValueError as error:
47
+ print(error)
48
+ pass
49
+ ```