Tôi đã thấy rằng trong 10.0 Field Calculator khá kỳ lạ.
Nhưng tôi đã xoay sở để làm cho nó hoạt động. Ý tưởng chính là kèm theo tên trường với dấu ngoặc đơn.
Thí dụ. giả sử chúng ta có các trường text1
và text2
. Thay vì tính toán trường text2
với biểu thức !text1!
, có thể sẽ thất bại, hãy thử trường này : '!text1'
. Như bạn thấy tôi đang sử dụng dấu ngoặc đơn ở đây.
Vì vậy, trở lại với nhiệm vụ của bạn. Sẽ rõ ràng hơn khi sử dụng Mã tập lệnh tiền logic:
def calc(value):
return value.replace('"', '')
Biểu hiện sẽ là:
calc('!text1!')
Tôi hy vọng nó sẽ làm việc cho bạn.
Tôi chưa thử nghiệm thêm nhưng tôi nghĩ rằng hành vi kỳ lạ như vậy xảy ra do tính toán trường được dịch sang lệnh gọi đến công cụ ArcToolbox CalculateField_management
và biểu thức được cung cấp dưới dạng tham số cho nó (có thể kèm theo dấu ngoặc đơn hoặc dấu ngoặc kép).
CẬP NHẬT:
Giải pháp trước đây của tôi sẽ thất bại trong trường hợp nếu có dấu ngoặc đơn trong các giá trị của trường text1
.
Bây giờ tôi đã quản lý để làm cho nó hoạt động cả trong trường hợp khi có ký tự '
và "
(dấu ngoặc đơn và dấu ngoặc kép) bên trong bất kỳ giá trị nào trong thuộc tính text1
.
Đây là biểu thức, sẽ trả về chuỗi gốc, hỗ trợ cả hai loại dấu ngoặc kép:
'''!text1!'''[1:-1]
Đối với nhiệm vụ của bạn, nó có thể được mở rộng thành (không có Mã tập lệnh tiền logic):
'''!text1!'''[1:-1].replace('"', '')
!testing![1:len(!testing!)-1]