[英]Integer Required for Function
代码中的错误是
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
Excel没有整数数据类型。 因此from_
和to
实际上可能是python中的float
对象。
以记录宏功能提供的格式将参数发送到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文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.