Кастинг результату об'єкта 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

Використовуйте наступний метод на об'єкті Result, і ви зможете передати його як int:

.getOutput (0) поверне значення у першій позиції індексу інструменту.

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


3

GetCount повертає об'єкт Result, а не ціле число чи рядок.

Щоб отримати рядок, ви використовуєте метод getOuput об’єкта результату та витягніть його першу частину. Щоб побачити будь-які інші частини, спробуйте переключити 0 на 1, 2 тощо.

Якщо вам потрібно перетворити цей рядок у ціле число, тоді використовуйте функцію int ().

Щоб дізнатися більше про об'єкт Result та його метод getOutput, слід звернутися до Інтернет-довідки .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.