Обновление Python MySQL таблиц с внешними ключами
Я пытаюсь вызвать хранимую процедуру MySQL. Мне нужно добавить параметры из файла CSV, а также столбец словаря запрашивается из БД. В моем БД server_id это внешний ключ для таблицы контрольных точек. Когда я пытаюсь добавить serverid в качестве параметра, я получаю следующую ошибку подтверждения. Я не уверен, что py-файл может сказать, что я определил значение servrid в функции serverdict.
#create dictionary with server_id foreign key
import mysql.connector
# create database connection
conn = mysql.connector.connect(host='xx', user='xx', password='xx', db='xx')
# cursor = conn.cursor()
def serverdict():
cursor = conn.cursor(dictionary=True)
cursor.execute("select server_id, name from servers")
for serverid in cursor:
print("* {server_id}: {name}".format(**serverid))
import mysql.connector
import csv
from serverdict import serverdict
# open csv file
with open('DBstatus.csv') as dbcsvfile:
dbstatus = csv.DictReader(dbcsvfile)
for row in dbstatus:
print(row['Report Id'], row['Status Id'], row['Host Name'], row["OS Type"], row['Host Description'], row['License Type'],
row['One-Way Enabled'], row['FS Agent Registration Status'], row['FS Agent Version'], row['Host Name'], row['Last Policy Update'],
row['Guard Point Id'], row['Guard Path'], row['Policy Id'], row['Policy Name'], row['Guard Enabled'],
row['Guard Point Status'], row['Error Reason'])
serverdict()
#create database connection
conn = mysql.connector.connect(host='xxxx', user='xxx', password='xxx', db='xxx')
cursor = conn.cursor()
#Create parameters for stored procedure
guardpointparams = (row['FS Agent Registration Status'], row['FS Agent Version'], row['Guard Path'], serverid['server_id'])
#call stored procedure
updateguardpointstable = cursor.callproc('update_guardpoints', guardpointparams)
conn.commit()
conn.close()
Traceback (most recent call last):
Обновить Guardpoints Table.py", строка 29, в guardpointparams = (строка ['Состояние регистрации агента FS'], строка ['Версия агента FS'], строка ['Путь защиты'], serverid['server_id']) NameError: имя 'serverid' не определено