1

私はPythonで練習していて、データベース操作の実行に役立つクラスを作成しようとしていますが、データベースに挿入するときのコードは次のとおりです:

def Insert(self, **kwargs):
    self.__query.execute("INSERT INTO {} ({}) VALUES ({})".format(self.table, ", ".join(kwargs.keys()), ", ".join(str(v) for v in kwargs.values())))
    self.__db.commit()

テストのためにこのコードを実行したとき:

MyTable.Insert(id=3, name="jack", age=23)

このエラーが発生しました:

sqlite3.OperationalError:そのような列はありません:ジャック

executeコマンドを次のように置き換えたとき、次のようにprintなりました。

INSERT INTO testTbl111 (id, name, age) VALUES (3, jack, 23)

jack引用符で囲まれている必要があると思います。

私の質問:jack実行中に引用符で囲む方法は", ".join(str(v) for v in kwargs.values())?

4

1 に答える 1