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

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

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

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

Python 3.x

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

解決済

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

agtrer
agtrer

総合スコア27

SQLite

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

Python 3.x

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

1回答

0グッド

1クリップ

1148閲覧

投稿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で二次元配列をそのまま保存することはできないのでしょうか?
できないのであれば他にどのような方法があるかもご教授頂きたいです。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答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

総合スコア376

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

agtrer

2022/04/11 12:38

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

SQLite

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

Python 3.x

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