Целое число, необходимое для функции
Ошибка в коде
psspy.three_wnd_winding_data_3(from_,to,last_bus,r"""1""",1,[_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f, max_value, min_value,_f,_f,_f])
TypeError: an integer is required
Я думал, что я уже преобразовал строку в целое число. Я сбит с толку. Потому что другие переменные year_link
, tla_2
, min_value
, max_value
не требует от меня использования isinstance
а также isdigit
, Переменные переносятся в psspy
массив функций. Ошибка говорит, что это читает строковое значение для last_bus
, Кто-нибудь знает, как это исправить и может объяснить мне, почему я должен преобразовать строку для последнего столбца таблицы Excel. Лист Excel
for row in data:
year_link, from_,to,digit,name2,tla_2,min_value,max_value,last_bus = row[7:16]
if isinstance(last_bus, str) and year_link==year and tla_2==location and last_bus.isdigit() is True:
min_value=float(min_value)
max_value=float(max_value)
last_bus=int(last_bus)
output = 'From Bus #: {}\tTo Bus #: {}\tLast Bus #: {}\t Area Station: {}\t VMIN: {} pu\tVMAX: {} pu\t'
print(output.format(from_, to,last_bus,name2, min_value, max_value))
print("\n")
psspy.three_wnd_winding_data_3(from_,to, last_bus,r"""1""",1,[_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f, max_value, min_value,_f,_f,_f])
else:
exit
0 ответов
Excel не имеет целочисленного типа данных; такfrom_
а также to
действительно может быть float
объекты в Python.
Отправка аргументов в psspy
функции в формате, который дает вам функция макроса записи, подвержены ошибкам. Лучше использовать следующий подход с использованием аргументов ключевого слова:
psspy.three_wnd_winding_data_3(
ibus=int(from_), # H winding bus
jbus=int(to), # X winding bus
kbus=int(last_bus), # Y winding bus
ckt='1', # circuit ID
warg=1, # winding number
realari9=float(max_value), # VMAi
realari10=float(min_value), # VMIi
)
Здесь крайне важно читать строку документации. Вы можете прочитать документацию по API.