私は、Python (私の最初の Python コード) を使用して線形計画法最適化モデルを作成しようとしている AMPL ユーザーです。複合セットに対してインデックス付きパラメーターを宣言する方法を見つけようとしています。たとえば、AMPL では次のように言います。 Set A Set B Set C param x{A, B, C} param y{A, B, C} param z{A, B, C} 上記のセットとパラメータは次のようになります。 AMPL を介してデータベースから簡単に読み取ることができます。
データベースから読み取ったテーブルには、A、B、C、x、y、z の 6 つのフィールドがあります。そのうちの 3 つ (A、B、C) は主キーで、残り (x、y、z) は主キーにインデックス付けされた値です。
PYTHON PART: PYODBC モジュールを使用して SQL Server に接続しています。「dict」を試しましたが、1 つのキーしかインデックスできません。最初の 3 つのフィールドを複合セットとして宣言し、x、y、z を複合セットのインデックス付きの値として宣言するには、どの Python 機能を使用すればよいかわかりません。
import pyodbc
con = pyodbc.connect('Trusted_Connection=yes', driver = '{SQL Server Native Client 10.0}', server = 'Server', database='db')
cur = con.cursor()
cur.execute("execute dbo.SP @Param =%d" %Param)
result = cur.fetchall()
Comp_Key, x, y, z= dict((A, B, C, [x,y,z]) for A, B, C, x, y, z in result)
もちろん、それは正しくありません。これを行う方法について考えることができません。
助けてください:)よろしくお願いします!