アクセス テーブルのフィールド内のアイテムをカーソル検索しようとしています。次に、それらを「distList」というリストに追加します。リストを式の SQL クエリビルダー 'WHERE' 句に渡したい:
"Field1" in distList
または長い手で言えば、次のようになります。
"Field1" in ('ds(c1)', 'ds(b1)', 'ds(c2)', 'ds(g1)')
リストは次のようになります。
['ds(c1)', 'ds(b1)', 'ds(c2)', 'ds(g1)']
私が抱えている問題は、上記の SQL 式が Python リストの「中」に表示されたくないということです。角括弧を認識しません。丸括弧を好むので、タプルを使用することを考えました。私が直面している問題は、カーソルがアクセス テーブルから項目を検索した後にタプルを作成する方法がわからないことです。ここに私のコード例があります:
distList = []
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
if lyr.name == "Disturbance":
for row in arcpy.SearchCursor(lyr):
if "ds" in row.Field1:
distList.append(row.Field1)
lyr.definitionQuery = '"Field1"' + "in " + distList
私のリストをタプルにする方法、または私のアイテムを角かっこの代わりに丸かっこを持つ形式にするためのより良い方法を誰かが提案できますか?
回避策として、リストを文字列に変換してからstr(distList)
括弧を置き換えてみました。それはうまくいきますが、面倒なようで、もっと良い方法があると確信しています。
ありがとう、マイク