質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2481閲覧

sqlite3 python で二次元配列データを保存したい

agtrer

総合スコア28

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2022/04/07 09:01

実現したいこと

sqlite3 pythonで二次元配列データをデータベースに保存したい

ソースコード

import sqlite3 # 接続先となるDBの名前。'/home/user/database.db'といった表現方法も可能。 dbname = 'database.db' # コネクタ作成。dbnameの名前を持つDBへ接続する。 conn = sqlite3.connect(dbname) cur = conn.cursor() # 保存用の二次元配列を初期化 result = [[0] * 5] * 5 # 今回は確認用で全て初期値0とする # ここから好きなだけクエリを打つ cur.execute('create table practice(id integer, name text, result text[][]);') cur.execute("insert into practice values(1, 'tanaka', result)") # 処理をコミット conn.commit() # 接続を切断 conn.close()

上記ソースコードを実行したときのエラー

sqlite3.OperationalError: no such column: result

確認したいこと

sqliteで二次元配列をそのまま保存することはできないのでしょうか?
できないのであれば他にどのような方法があるかもご教授頂きたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

SQLiteのテーブル定義でtext[][]としている箇所は文法的に誤っていると思います。
自分の知る限り、そのようなカラム定義はできなかったと思います。
結果的にカラムが作成されず、sqlite3.OperationalError: no such column: resultとなっているのだと思います。
2次元配列を保存したいのであれば、↓の方法があるかもしれません。
(1)配列を別のテーブルに分ける
(2)JSONなどでシリアライズしてTEXTとして保存する

投稿2022/04/07 09:17

編集2022/04/07 09:23
madoka-t

総合スコア379

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agtrer

2022/04/11 12:38

(2)のJSONでシリアライズしてTEXTとして保存する方法でできました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問