0

テーブルの名前を出力して追加する簡単なスクリプトを作成しました。これは、関連する列見出しをPythonリストに追加します。

for table in arcpy.ListTables():
    for field in arcpy.ListFields(table):       
        b.append(field.name + "," + fc)
print b

各表には、多数の列見出しがあります。1 つ以上のテーブルに同じ列見出しが含まれている場合が多数あります。キーが列見出しで、値がテーブル名であるリストの代わりに、少し逆の python 辞書を作成したいと思います。私の考えは、各列見出しが含まれるすべてのテーブルを見つけることです。

私は午後ずっと遊んでいて、これについて考えすぎていると思うので、助けを求めてここに来ました。誰かが私がこれを達成する方法を提案できるなら、私はそれを感謝します.

ありがとう、マイク

4

3 に答える 3

0

各キーがフィールド名で、各値がテーブル名のリストであるディクショナリを作成します。

 # initialize the dictionary
 col_index = {}

 for table in arcpy.ListTables():
     for field in arcpy.ListFields(table):
         if field.name not in col_index:
              # this is a field name we haven't seen before,
              # so initialize a dictionary entry with an empty list
              # as the corresponding value
              col_index[field.name] = []
         # add the table name to the list of tables for this field name
         col_index[field.name].append(table.name)

次に、フィールド LastName を含むテーブルのリストが必要な場合:

 list_of_tables = col_index['LastName']

列名に関して大文字と小文字を区別しないデータベースを使用している場合は、辞書をテストする前に、field.name を大文字に変換することをお勧めします。

于 2013-09-12T00:56:18.767 に答える