データベースのサービス層を作成しているため、特定の操作を実行する関数を作成しています。Atm それらのいくつかは単純な非同期挿入です。ただし、膨大な量のパラメーターがあります。
私はスクレイピーからスパイダー データを使用しており、Python dict のような API を持つスクレイピーのitem
コンセプトを使用しています。ストアド プロシージャ シグネチャ/ストアド プロシージャ呼び出しの構築、または挿入ステートメントのすべてのフィールドをパラメーター化する必要はありません。
まず、複合型が 2 回宣言されていることに注意してください。1つ目はcreate table
postgres のステートメントで、2 つ目はアイテム インターフェイスを使用したスクレイピーです。そう :
pyscopg2 を使用して Python dict のようなエンティティを postgres に入れる最もクリーンな方法は何ですか?
tablename%ROWTYPE
ストアド プロシージャの入力パラメーターとして宣言する必要があると考えていますが、実行クエリ文字列を作成するときに、python dict のようなオブジェクトをどのようにマップしますか? psycopg2の複合型ケーシングと関係があると思います。しかし、ドキュメントから全体像を見ることはできません。
議論のために、対応するスクレイピータイプを持つユーザーテーブルを考えてみましょうCREATE TABLE( name character varying, id integer primary key)
.プライマリIDはドメイン内で暗黙的に一意です. デフォルト値と pkey シリアライザーが配置されている場合に挿入がどのように見えるかについてのコメントも役立ちます:D
Sql Adaption Protocolを使用して、汎用ルーチンでスクレイピー アイテムをサブクラス化し、スクレイピー アイテムを postgres 複合型に変換できますか? これは賢明でしょうか?