กำลังส่งออบเจ็กต์ผลลัพธ์ ArcPy จาก arcpy.GetCount_management () เป็นจำนวนเต็มแทนหรือไม่


18

ฉันพยายามรับตัวเลขด้วยการนับจำนวนจุดที่อยู่ในไฟล์รูปร่าง และมันใช้งานได้ยกเว้นฉันจะพบปัญหาในการใช้หมายเลขนั้นในที่อื่น ในที่สุดฉันจะใช้การนับนั้นในคณิตศาสตร์ (เครื่องคำนวณภาคสนาม) แต่ในขณะที่การดีบั๊กฉันพบข้อผิดพลาดที่จะจบลงทำให้ฉันมีปัญหาในภายหลัง

รหัสนี้:

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

ให้ข้อผิดพลาดนี้:

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

ฉันพยายามคัดเลือกเป็นแบบ int ซึ่งมันไม่ชอบ:

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

ดังนั้นฉันจึงมีวัตถุ 'ผลลัพธ์' และต้องเปลี่ยนเป็นตัวเลข

ฉันจะทำเช่นนั้น - หรือใช้ฟังก์ชัน ArcPy ที่ไม่จำเป็นหรือซับซ้อนเกินไปที่นี่ได้อย่างไร

คำตอบ:


45

ใช้วิธีการต่อไปนี้ในผลลัพธ์วัตถุและคุณจะสามารถส่งเป็น int:

. getOutput (0)จะคืนค่าที่ตำแหน่งดัชนีแรกของเครื่องมือ

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


3

GetCount ส่งคืนวัตถุผลลัพธ์และไม่ใช่จำนวนเต็มหรือสตริง

ในการรับสตริงให้ใช้เมธอด getOuput ของอ็อบเจ็กต์ผลลัพธ์และดึงส่วนแรก หากต้องการดูส่วนอื่น ๆ ลองสลับ 0 เป็น 1, 2 และอื่น ๆ

หากคุณต้องการเปลี่ยนสตริงนั้นให้เป็นจำนวนเต็มให้ใช้ฟังก์ชัน int ()

เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับวัตถุผลและวิธีการ getOutput ของมันความช่วยเหลือออนไลน์ควรได้รับการพิจารณา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.