質問編集履歴
2
schema 追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,14 +13,21 @@
|
|
13
13
|
``` python
|
14
14
|
"""
|
15
15
|
入れたいJSON文字列
|
16
|
+
sqlite> .schema target_table
|
17
|
+
CREATE TABLE `target_table` (
|
18
|
+
`id` INTEGER NOT NULL DEFAULT '0',
|
19
|
+
`status` TEXT DEFAULT NULL,
|
20
|
+
`start` datetime DEFAULT NULL,
|
21
|
+
`end` datetime DEFAULT NULL
|
16
|
-
|
22
|
+
);
|
23
|
+
実行するinsert文?replace文?のイメージ
|
24
|
+
sqlite> replace into target_table select key from json_each([
|
17
|
-
{'start': '2019-03-28 04:05:38', 'id': 1, 'end': '2019-03-28 13:34:58', 'status': '
|
25
|
+
{'start': '2019-03-28 04:05:38', 'id': 1, 'end': '2019-03-28 13:34:58', 'status': 'OK'},
|
18
|
-
{'start': '2019-03-28 07:10:34', 'id': 2, 'end': None, 'status': 'OK'},
|
19
|
-
{'start': '2019-03-29 06:10:33', 'id':
|
26
|
+
{'start': '2019-03-29 06:10:33', 'id': 2, 'end': None, 'status': 'Error'},
|
20
|
-
{'start': '2019-03-29 06:10:35', 'id':
|
27
|
+
{'start': '2019-03-29 06:10:35', 'id': 3, 'end': None, 'status': 'Error'},
|
21
|
-
{'start': '2019-03-29 06:10:38', 'id':
|
28
|
+
{'start': '2019-03-29 06:10:38', 'id': 4, 'end': None, 'status': 'Error'},
|
22
|
-
{'start': '2019-03-29 06:10:39', 'id':
|
29
|
+
{'start': '2019-03-29 06:10:39', 'id': 5, 'end': None, 'status': 'Error'}
|
23
|
-
]
|
30
|
+
])
|
24
31
|
"""
|
25
32
|
|
26
33
|
# MySQLでSELECT文を実行し、
|
@@ -30,5 +37,5 @@
|
|
30
37
|
|
31
38
|
conn = sqlite3.connect("target.db")
|
32
39
|
cursor = conn.cursor()
|
33
|
-
cursor.executemany(query, args) # json文字列をインサートしたい
|
40
|
+
cursor.executemany(query, args) # json文字列を上のようにインサートしたい
|
34
41
|
```
|
1
誤字修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,13 +3,26 @@
|
|
3
3
|
SQLite 3.9.0からJSON拡張モジュールが加わったらしいですが、
|
4
4
|
ビックリするほどに情報が少ないです。
|
5
5
|
[The JSON1 Extension - SQLite # json_each(json)](https://www.sqlite.org/json1.html#jeach)
|
6
|
+
|
6
7
|
下記サイトの、この辺りでいけそうな気がしているのですが、
|
7
8
|
使い方がいまいちよくわかりません。
|
8
9
|
`replace into json_table select key,value from json_each('{"a":{"c":789},"b":456}')`
|
9
|
-
|
10
|
+
[SQLite3のJSON機能が便利だった2](https://qiita.com/SoraKumo/items/091328b5e5d18e357ed3#%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%8C%BF%E5%85%A5")
|
10
11
|
|
11
12
|
|
12
|
-
```
|
13
|
+
``` python
|
14
|
+
"""
|
15
|
+
入れたいJSON文字列
|
16
|
+
[
|
17
|
+
{'start': '2019-03-28 04:05:38', 'id': 1, 'end': '2019-03-28 13:34:58', 'status': 'Destroyed'},
|
18
|
+
{'start': '2019-03-28 07:10:34', 'id': 2, 'end': None, 'status': 'OK'},
|
19
|
+
{'start': '2019-03-29 06:10:33', 'id': 3, 'end': None, 'status': 'Error'},
|
20
|
+
{'start': '2019-03-29 06:10:35', 'id': 4, 'end': None, 'status': 'Error'},
|
21
|
+
{'start': '2019-03-29 06:10:38', 'id': 5, 'end': None, 'status': 'Error'},
|
22
|
+
{'start': '2019-03-29 06:10:39', 'id': 6, 'end': None, 'status': 'Error'}]
|
23
|
+
]
|
24
|
+
"""
|
25
|
+
|
13
26
|
# MySQLでSELECT文を実行し、
|
14
27
|
# DictCursorでリスト(辞書)のオブジェクトを受け取り、
|
15
28
|
args= json.dumps() # でjson文字列にして、
|