Đúc đối tượng kết quả ArcPy từ arcpy.GetCount_man Quản lý () làm số nguyên thay thế?


18

Tôi đang cố gắng để có được một số bằng cách đếm có bao nhiêu điểm trong một shapefile. Và điều này hoạt động, ngoại trừ sau đó tôi gặp rắc rối khi sử dụng số đó ở một nơi khác. Cuối cùng, tôi sẽ sử dụng số đó trong một số phép toán (máy tính trường), nhưng trong khi gỡ lỗi, tôi gặp phải một lỗi sẽ gây ra rắc rối cho tôi sau này.

Mã này:

TotalPoints = arcpy.GetCount_management(Path_Pts)
arcpy.AddMessage(">>>> PROCESS: COUNT PATH POINTS {" + TotalPoints + "}")

đưa ra lỗi này:

TypeError: cannot concatenate 'str' and 'Result' objects

Tôi đã thử truyền nó dưới dạng int, điều mà C ALNG không thích:

TypeError: int() argument must be a string or a number, not 'Result'

Vì vậy, tôi đã có một đối tượng 'Kết quả' và cần biến nó thành một số.

Làm thế nào tôi có thể làm điều đó - hoặc đang sử dụng chức năng ArcPy không cần thiết hoặc quá phức tạp ở đây?

Câu trả lời:


45

Sử dụng phương pháp sau trên đối tượng Kết quả và bạn sẽ có thể chuyển thành int:

.getOutput (0) sẽ trả về giá trị ở vị trí chỉ mục đầu tiên của công cụ.

int(arcpy.GetCount_management(Path_Pts).getOutput(0))


3

GetCount trả về một đối tượng Kết quả và không phải là số nguyên hoặc chuỗi.

Để có được một chuỗi, bạn sử dụng phương thức getOuput của đối tượng kết quả và kéo phần đầu tiên của nó. Để xem bất kỳ phần nào khác, hãy thử chuyển 0 thành 1, 2, v.v.

Nếu bạn cần biến chuỗi đó thành một số nguyên thì hãy sử dụng hàm int ().

Để tìm hiểu thêm về đối tượng Kết quả và phương thức getOutput của nó, cần tham khảo Trợ giúp trực tuyến .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.