Обновление 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' не определено

0 ответов

Другие вопросы по тегам