为了账号安全,请及时绑定邮箱和手机立即绑定

如何调用字典作为存储过程的参数

如何调用字典作为存储过程的参数

qq_花开花谢_0 2021-09-28 13:51:14
我试图在参数中使用字典来调用存储过程来更新使用字典中的值作为外键的表。字典数据(ID 是外键)例如:server1, ID1 server5, ID2ID 是我试图更新的表上的外键,在调用存储过程时需要作为参数。看来,当我将字典作为参数传入时,它正在拉取 server1 而不是 ID1 并导致密钥错误。with open('DBstatus.csv') as dbcsvfile:    dbstatus = csv.DictReader(dbcsvfile)    for row in dbstatus:#Create parameters for stored procedure        guardpointparams = (row['FS Agent Registration Status'], row['FS Agent Version'], row['Guard Path'], serverdict[row['Host Name']], policydict[row['Policy Name']], 0)        #call stored procedure        updateguardpointstable = cursor.callproc('update_guardpoints', guardpointparams)#i created the dictionary from a different script while updating the "servers" table where the DB is creating the returnvalue (ID) from the stored procedure see sample below:serverdict[row['Host Name']] = returnvalue[3]回溯:guardpointparams = (row['FS Agent Registration Status'], row['FS Agent Version'], row['Guard Path'], serverdict[row['Host Name']], policydict[row['Policy Name] ']], 0) KeyError: 'server1'
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

row['Host Name']似乎是server1。字典serverdict没有名为的键server1


查看完整回答
反对 回复 2021-09-28
?
DIEA

TA贡献1820条经验 获得超2个赞

看起来您的serverdict或您policydict的未定义。至少您没有在示例中提供定义。此外,回溯告诉您其中一个没有您正在寻找的密钥。


查看完整回答
反对 回复 2021-09-28
  • 2 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信