私は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. mysqldbにギリシャ語を挿入して選択するには
- 2. ギリシャ文字はTextCtrl経由でmysqldbを挿入しますエラー
- 3. Python | MySQLdb - >挿入できません
- 4. のPython MySQLdbは挿入構文エラー
- 5. python dictをSQLite DBに挿入
- 6. dictの値をPythonに挿入する回数に設定しますか?
- 7. mysqlテーブルの挿入を挿入する
- 8. 私は動的にpostgresテーブルにNULLを挿入しますか?
- 9. テーブル、ケースに挿入
- 10. ネストされたリストのdictに値を挿入する
- 11. Python - unicodeを挿入するmysqldbが失敗する
- 12. 1つのサーバーの1つのテーブルにスクリプトデータを挿入し、別のサーバーの同じテーブルに挿入します
- 13. のPython MySQLdbは挿入されていないデータ
- 14. テーブルにタイムスタンプを挿入
- 15. PHPテーブルにテキストフィールドを挿入
- 16. データをSQLテーブルに挿入
- 17. Codeigniter:form_inputをSQLテーブルに挿入
- 18. Sqliteテーブルにnullを挿入
- 19. mysql - 挿入後に他のテーブルにデータを挿入するトリガー
- 20. テーブルに新しい行を挿入
- 21. 1つのテーブルから別のテーブルにデータを挿入するステートメントを挿入
- 22. XMLを解析してMySQLテーブルにデータを挿入します
- 23. xmlを解析してmysqlテーブルにデータを挿入します
- 24. Pythonを使用してMySQLにdictのリストを挿入してください
- 25. テーブルに挿入します。..リンクサーバーの幹部は
- 26. Python MySQLdbはテーブル変数を実行します
- 27. mysqlクエリは文字列をテーブルに挿入しませんか?
- 28. Asposeテーブルを挿入する
- 29. 外部キーを使用してテーブルに挿入しますか?
- 30. 親子テーブルにレコードを挿入して選択します