Saya mencoba menggunakan Field Calculator (ArcMap 10.0) untuk menghapus tanda kutip ganda di bidang alamat (saya tidak meletakkannya di sana, percayalah). Saya sudah mencoba banyak mantera, tetapi saya masih belum bisa menyelesaikannya dengan perhitungan. ya, kedua bidang adalah string, dan keduanya panjangnya dapat diterima.
Perhitungan ini:
Hasil dalam ini:
Dengan pesan kesalahan ini di dialog Hasil:
Dan saya ulangi, saya tidak meletakkannya di sana.
arcgis-desktop
arcgis-10.0
arcmap
field-calculator
python-parser
katup London
sumber
sumber
!testing![1:len(!testing!)-1]
Jawaban:
Saya telah menemukan bahwa di 10.0 Field Calculator cukup aneh.
Tapi saya sudah berhasil membuatnya bekerja. Gagasan utamanya adalah melampirkan nama bidang dengan tanda kutip tunggal.
Contoh. misalkan kita punya ladang
text1
dantext2
. Daripada Menghitung lapangantext2
dengan ekspresi!text1!
, yang mungkin akan gagal, mencoba yang satu ini:'!text1'
. Seperti yang Anda lihat saya menggunakan tanda kutip tunggal di sini.Jadi, kembali ke tugasmu. Akan lebih jelas untuk menggunakan Kode Naskah Pra-Logika:
Ekspresi akan menjadi:
Saya harap ini akan berhasil untuk Anda.
Saya belum bereksperimen lebih jauh tapi saya pikir perilaku aneh seperti itu terjadi karena perhitungan bidang diterjemahkan ke dalam panggilan ke alat ArcToolbox
CalculateField_management
dan ekspresi disediakan sebagai parameter untuk itu (mungkin juga disertai dengan tanda kutip tunggal atau ganda).MEMPERBARUI:
Solusi saya sebelumnya akan gagal jika ada tanda kutip tunggal dalam nilai-nilai bidang
text1
.Sekarang saya telah berhasil membuatnya bekerja baik dalam kasus ketika ada karakter
'
dan"
(tanda kutip tunggal dan ganda) di dalam nilai apa pun di atributtext1
.Inilah ekspresi, yang akan mengembalikan string asli, mendukung kedua jenis kutipan:
Untuk tugas Anda, dapat diperluas ke (tanpa Kode Skrip Pra-Logika):
sumber
'!testing!'
Jika Anda menggunakan versi 10.1 dan Anda yakin ingin menyingkirkan setiap contoh tanda kutip ganda yang dapat Anda gunakan:
Jika ada yang tahu mengapa ini bekerja di 10.1 dan bukan 10.0 saya akan tertarik.
Ini adalah entri hasil dari proses saya.
sumber
Berikut ini cara non skrip untuk melakukannya.
"
, pilih Ganti semua (Anda harus mengklik tombol Ganti Semua dua kali).sumber
Pendekatan hybrid bekerja pada sistem saya:
sumber
Saya belum pernah mencoba ini di dalam Arc, tetapi saya dapat menghapus tanda kutip ganda dari sebuah string dalam IDE Python dengan cara (cepat) ini:
tes cetak a2, tanpa tanda kutip.
sumber
hai coba gunakan tanda kutip tunggal seperti ini! test! .replace ('"', '')
sumber
Saya merasa cukup mudah dengan Fungsi VBScript lama:
Replace ([testing],"""","")
sumber