Arcpy 2.7 - обновить вопрос о форматировании поля геоданных - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь выяснить, как отформатировать текстовую переменную, извлеченную из таблицы файловой базы геоданных, и обновить поле таблицы другой файловой базы геоданных этой переменной. Поля в обеих таблицах являются текстовыми полями с размером поля 300. Весь столбец должен быть обновлен с тем же значением, извлеченным из таблицы1. Кажется, я не могу правильно отформатировать var1 в операторе arcpy.CalculateField_management.

Для каждой искомой строки создается отдельная таблица, а SQL-запрос строится из значений в строке [2]. Используя sql, записи выбираются из третьей таблицы и сохраняются с именем файла, извлеченным из строки [0]. Как только записи сохранены в этой таблице, я добавляю новое поле и обновляю его значением из строки [1]. Все это делается правильно до того момента, когда я пытаюсь обновить поле «Описание». Я почти уверен, что это проблема форматирования.


значение из таблицы table1, полученное через SearchCursor:

var = row[1] 

Я хочу обновить поле "Description" в таблице 2. Я пробовал следующие форматы:

var1  = var
var1 = '!' + var + '!'
arcpy.CalculateField_management("table2", "Description", var1, "PYTHON3")

var1 = '"' + var + '"'
arcpy.CalculateField_management("table2", "Description", var1, "PYTHON3")
arcpy.CalculateField_management("table2", "Description", "'" + var1 + "'", "PYTHON3")

Я в тупике. Я дома, и код - это работа, поэтому я не включил ее. Я думаю, что этого достаточно, чтобы пройти, хотя. Любые указатели будут с благодарностью.

Использование ArcMap 10.6.1

1 Ответ

0 голосов
/ 09 октября 2019

Я предполагаю, что из кавычек, которые вы бросаете в var, содержится строка. В этом случае вы хотите:

arcpy.CalculateField_management("table2", "Description", "'" + var + "'", "PYTHON3")

Обратите внимание, что я использовал 'var', а не 'var1'. Если var содержит число, вы можете просто:

arcpy.CalculateField_management("table2", "Description", var, "PYTHON3")
...