回答編集履歴
2
コード修正
answer
CHANGED
@@ -18,10 +18,10 @@
|
|
18
18
|
con.close()
|
19
19
|
|
20
20
|
# テストデータ。fetchallなりで取り出してきたもの
|
21
|
-
fetch_dat = [({"num": 3, "str": "c"},), ({"num": 4, "str": "d"},)]
|
21
|
+
fetch_dat = [('{"num": 3, "str": "c"}',), ('{"num": 4, "str": "d"}',)]
|
22
22
|
|
23
23
|
# タプルで包まれているので、包みを取り除く
|
24
|
-
fetch_dat = [t[0] for t in fetch_dat]
|
24
|
+
fetch_dat = [json.loads(t[0]) for t in fetch_dat]
|
25
25
|
print(fetch_dat) # [{'num': 3, 'str': 'c'}, {'num': 4, 'str': 'd'}]
|
26
26
|
|
27
27
|
# クエリ文字列を作成
|
1
コード修正
answer
CHANGED
@@ -17,18 +17,21 @@
|
|
17
17
|
con.commit()
|
18
18
|
con.close()
|
19
19
|
|
20
|
-
# テスト
|
20
|
+
# テストデータ。fetchallなりで取り出してきたもの
|
21
|
-
|
21
|
+
fetch_dat = [({"num": 3, "str": "c"},), ({"num": 4, "str": "d"},)]
|
22
|
-
json_dat = json.loads(json_str)
|
23
22
|
|
23
|
+
# タプルで包まれているので、包みを取り除く
|
24
|
+
fetch_dat = [t[0] for t in fetch_dat]
|
25
|
+
print(fetch_dat) # [{'num': 3, 'str': 'c'}, {'num': 4, 'str': 'd'}]
|
26
|
+
|
24
27
|
# クエリ文字列を作成
|
25
|
-
columns = tuple(
|
28
|
+
columns = tuple(fetch_dat[0].keys())
|
26
29
|
params = ['?' for _ in range(len(columns))]
|
27
30
|
sql = 'insert into t_test({}) values({})'.format(','.join(columns), ','.join(params))
|
28
31
|
print(sql) # insert into t_test(num,str) values(?,?)
|
29
32
|
|
30
33
|
# クエリに渡すデータ。値をタプルにしたリスト
|
31
|
-
datas = [tuple(e.values()) for e in
|
34
|
+
datas = [tuple(e.values()) for e in fetch_dat]
|
32
35
|
|
33
36
|
# テーブルに複数レコード追加
|
34
37
|
con = sqlite3.connect('test.db')
|