Lebih

Menggabungkan teks dan string dalam ekspresi Field Calculator (python)

Menggabungkan teks dan string dalam ekspresi Field Calculator (python)


Saya mencoba menyalin nilai atribut dari satu bidang ke bidang lain (jumlah nilai raster), tetapi saya mengalami masalah dalam menulis ekspresi yang berfungsi untuk skrip Hitung Bidang. Saya menambahkan bidang yang disebutJUMLAHdan mencoba menyalin nilai dari bidang"SUM_" + nama file[0:-4]. Saya memiliki banyak file yang saya coba lakukan ini dan nama bidangnya berbeda di masing-masing, itulah sebabnya ditulis dengan cara ini.

Inilah kode yang saya miliki sejauh ini:

untuk tabel di arcpy.ListTables(): arcpy.AddField_management(tabel, "SUM", "DOUBLE") ekspresi = ["SUM_" + str(namafile[0:-4])] arcpy.CalculateField_management(tabel, "SUM" , ekspresi, "VB")

Ini tidak berfungsi karena saya menerima kesalahan berikut:

File "C:UserskellyjDesktopProjectsCostAnalysisRoute_Cost_Analysis.py", baris 82, di  arcpy.CalculateField_management(tabel, "SUM", nilai ekspresi, "VB") Berkas "C:Program Files (x86)ArcGISDesktop10.2arcpyarcpymanagement.py", baris 3354, di HitungField menaikkan e RuntimeError : Obyek: Kesalahan dalam menjalankan alat

Adakah pemikiran tentang bagaimana saya bisa memperbaikinya?


Anda harus memiliki tanda kurung siku yang mengelilingi benda "SUM_"

Mencoba perubahan

ekspresi = ["SUM_" + str(nama file[0:-4])]

untuk

ekspresi = "[SUM_{0}]".format(str(namafile[0:-4]))

Tanda kurung harus berada di dalam string, karena jika tidak, tanda kurung akan membuat daftar Python. Ketika Python melewati string yang memiliki tanda kurung di dalamnya sebagai ekspresi, Python tidak menafsirkan tanda kurung, tetapi Kalkulator Bidang menafsirkan ekspresi kurung di dalam string sebagai nama bidang. Gunakan kode berikut:

untuk tabel di arcpy.ListTables(): arcpy.AddField_management(table, "SUM", "DOUBLE") ekspresi = "[SUM_{0}]".format(str(namafile[0:-4])) arcpy.CalculateField_management (tabel, "SUM", ekspresi, "VB")

Tonton videonya: Format Ekspresi Field Calculator pada ArcGIS