質問編集履歴

3

説明追記

2020/08/27 05:49

投稿

fukazume
fukazume

スコア78

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,11 @@
44
44
 
45
45
  ###追記1(途中経過報告)
46
46
 
47
- 皆様ご回答いただき誠にありがとうございます!現状、以下コードのように0CSVから読み込んだ特定カラムのフィールドの文字列をjeanbiegoさんから教えていただいた方法で別の日時形式に変換するところまではできました。まだできてない処理は、この変換した日時形式の文字列で同フィールドを上書きする動きです。おそらくcsv.writerあたりを使用するのだろうと思いますが実装できないでいます。
47
+ 皆様ご回答いただき誠にありがとうございます!現状、以下コードのように0CSVから読み込んだ特定カラムのフィールドの文字列をjeanbiegoさんから教えていただいた方法で別の日時形式に変換するところまではできました。まだできてない処理は、この変換した日時形式の文字列で同フィールドを上書きする操作です。おそらくcsv.writerあたりを使用するのだろうと思いますが実装できないでいます。
48
+
49
+
50
+
51
+ また、全体のワークフローとして500レコードくらいのCSVを入手したところからCSVを編集する流れです。DBで直接編集はしない/できないという前提をイメージしていただければと思います。
48
52
 
49
53
 
50
54
 
@@ -84,7 +88,7 @@
84
88
 
85
89
  row[0] = date_con
86
90
 
87
- # ↓ここから先が未完成
91
+ # ↓ここから先が未完成(row[0]に代入した変換済み日時データで同フィールドを上書きする操作)
88
92
 
89
93
 
90
94
 

2

書式改善

2020/08/27 05:48

投稿

fukazume
fukazume

スコア78

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

1

追記

2020/08/27 05:41

投稿

fukazume
fukazume

スコア78

test CHANGED
File without changes
test CHANGED
@@ -39,3 +39,59 @@
39
39
 
40
40
 
41
41
  どうぞよろしくお願い申し上げます。
42
+
43
+
44
+
45
+ ###追記1(途中経過報告)
46
+
47
+ 皆様ご回答いただき誠にありがとうございます!現状、以下コードのように0CSVから読み込んだ特定カラムのフィールドの文字列をjeanbiegoさんから教えていただいた方法で別の日時形式に変換するところまではできました。まだできてない処理は、この変換した日時形式の文字列で同フィールドを上書きする動きです。おそらくcsv.writerあたりを使用するのだろうと思いますが実装できないでいます。
48
+
49
+
50
+
51
+ 引き続き試行錯誤してみます。ヒントなどございましたら、どうぞよろしくお願い申し上げます。
52
+
53
+
54
+
55
+
56
+
57
+ ```Python
58
+
59
+ # -*- coding: utf-8 -*-
60
+
61
+ import csv
62
+
63
+ import datetime
64
+
65
+
66
+
67
+ source = 'data\test.csv'
68
+
69
+ with open(source, encoding="UTF-8") as f:
70
+
71
+ reader = csv.reader(f)
72
+
73
+ for row in reader:
74
+
75
+ try:
76
+
77
+ print(row[0])
78
+
79
+ date_dt = datetime.datetime.strptime(row[0], "%a, %d %b %Y %H:%M:%S %z")
80
+
81
+ date_con = date_dt.strftime("%Y-%m-%dT%H:%M:%S:%f %z")
82
+
83
+ print(date_con)
84
+
85
+ row[0] = date_con
86
+
87
+ # ↓ここから先が未完成
88
+
89
+
90
+
91
+ except ValueError as error:
92
+
93
+ print(error)
94
+
95
+ pass
96
+
97
+ ```