ArcPyUpdateCursorを使用してPythonリストの値でフィールドを更新する

Oct 14 2020

私は現在、シェープファイルのフィールドを、arcpy環境の外部でコンパイルしたリストで更新しようとしています。動作しそうにないUpdateCursorとFieldCalculatorの両方を試してみました。FieldCalculatorは、「P [2]」で更新するだけです。

photoname = []

for p in shp_list:
    name = p[2]
    photoname.append(name)

    # arcpy.CalculateField_management(out_shapefile,"PhotoName","'p[2]'","PYTHON_9.3")

私も試しました:

updt_cursor = arcpy.da.UpdateCursor(out_shapefile, fields)
for row in updt_cursor:
    val = str(row[0])
    for p in shp_list:
        if val in p:
            row[2] = p_name
            updt_cursor.updateRow(row)

また、UpdateCursorは空白です。

リストから.txtを作成し、InsertCursorを使用して.txtファイルの行でフィールドを更新できることはわかっていますが、これを行うにはもっと効率的な方法があるはずです。コンテキストとして、exifデータからX / Yのポイントシェープファイルを作成しており、対応する画像名を入力したいと思います。

回答

2 AnnaForrest Oct 14 2020 at 08:26

フィールド計算ステートメントを修正するには、次のように変更します。

arcpy.CalculateField_management(out_shapefile,"PhotoName","'" + p[2] + "'","PYTHON_9.3")