私はdict形式でデータの行を持っています。それをmysqlテーブルに挿入する簡単な方法はありますか?私はdictをカスタムSQLクエリに変換するカスタム関数を書くことができますが、私はより直接的な代替方法を探しています。MySQLdbはテーブルにdictを挿入します
答えて
MySQLDBには、このような直接操作を可能にするものはありません。これは、この目的のためのカスタム関数を含む、さまざまな答えに共通する問題です。
私の経験では、ほとんどの場合、パラメタライズされたSQLを書き留めて書き込むのが最善です。あなたが同じことをたくさんしているのであれば、それをユーティリティ関数に分解することを検討します。
ただし、パラメータを使用して静的SQLを手書きしている場合は、ほとんどのセキュリティおよびバグ関連の問題が解決されます。どこから来たデータの辞書(?)に基づいてSQLを始めるときは、はるかに注意する必要があります。
要約すると、単にクエリを作成し、パラメータを使用し、ドキュメントをうまく処理すれば、コードは読みやすくメンテナンス可能で安全です。
(注:ORMの一部の支持者、等...同意しない場合があります...これは、単純で信頼性が何であったかについて多くの経験に基づいた意見である、と私たちのチームのために働いていた)
まあ... paramstyle
のドキュメントによると:
「フォーマット」= ANSI Cのprintfフォーマットコードに設定します。 '... WHERE name =%s'。 conn.execute()にマッピングオブジェクトが使用されている場合、インターフェイス は実際には 'pyformat' = Python拡張フォーマットコードを使用します。 '... WHERE name =%(name)s'です。
curs.execute("INSERT INTO foo (col1, col2, ...) VALUES (%(key1)s, %(key2)s, ...)", dictionary)
key1
、key2
など:ただし、APIは現在だから、それはだけの問題でなければなりませんparamstyle
に複数のスタイルの 仕様を許可していません。辞書のキーになります。
免責事項:私はこれを自分で試していない:)
編集:ええ、それを試してみました。できます。
- 1. ギリシャ文字はTextCtrl経由でmysqldbを挿入しますエラー
- 2. mysqldbにギリシャ語を挿入して選択するには
- 3. Python | MySQLdb - >挿入できません
- 4. のPython MySQLdbは挿入構文エラー
- 5. python dictをSQLite DBに挿入
- 6. ジャンクション・テーブルにデータを挿入します。
- 7. dictの値をPythonに挿入する回数に設定しますか?
- 8. Python - unicodeを挿入するmysqldbが失敗する
- 9. Python MySQLdbがすべてのレコードを挿入していません
- 10. mysqlテーブルの挿入を挿入する
- 11. 別のテーブルに挿入するとテーブルを更新します
- 12. テーブルにデータを挿入するには?
- 13. テーブルにセルを挿入するには?
- 14. データベース内のリストを挿入するMySQLdb Python3.6
- 15. のPython MySQLdbは挿入されていないデータ
- 16. 私は動的にpostgresテーブルにNULLを挿入しますか?
- 17. aspnetuserに挿入して別のテーブルに値を挿入
- 18. selectを挿入し、テーブルの値に応じてEDITEDに挿入
- 19. SQL Server - バルク挿入なしでテーブルにテキストファイルを挿入するには
- 20. テーブル、ケースに挿入
- 21. ネストされたリストのdictに値を挿入する
- 22. 1つのサーバーの1つのテーブルにスクリプトデータを挿入し、別のサーバーの同じテーブルに挿入します
- 23. Python-MySQLdbは値の挿入に失敗しますが、コンソールに出力されたSQLを実行するとデータが挿入されますか?
- 24. オラクルは同じテーブルにselect max + 1を挿入します
- 25. C#/ SQL Server:MVVMは複数のテーブルにデータを挿入します
- 26. php mysqliは2つのテーブルにデータを挿入します
- 27. Python MySQLdbはテーブル変数を実行します
- 28. テーブルに挿入するSQL
- 29. mysql - 挿入後に他のテーブルにデータを挿入するトリガー
- 30. 外部テーブルに挿入できます