Я новичок в Питоне. У меня есть код Python, и моя цель - получить последовательный вывод, а затем сохранить вывод в базе данных Microsoft SQL.
Этот последовательный вывод ниже будет появляться каждый раз, когда учащиеся сканируют отпечатки пальцев, чтобы принять участие, вот что на экране показывает последовательный монитор Arduino:
{'SID':1,'Date':2018/11/17,'Time':07:11:13}
{'SID':2,'Date':2018/11/17,'Time':07:15:41}
....
....
Я бы хотел, чтобы мой код на Python выполнял эту работу: он извлекает последовательный вывод, указанный выше, и сохраняет его в базе данных Microsoft SQL. Когда студенты сканируют отпечаток пальца, чтобы принять участие, питон должен иметь возможность получать последовательный вывод и сохранять его в MSSQL каждый раз. Я делаю это так:
import pyodbc
import serial
import time
import datetime
import ast
cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
"Server=DESKTOP-H7KQUT1;"
"Database=SAOS1;"
"Trusted_Connection=yes;")
cursor = cnxn.cursor()
now = datetime.datetime.now()
arduino = serial.Serial('COM4', 9600, timeout=.1)
while True:
data = arduino.readline()[:-2].decode("utf-8")
if data!="":
SID = ast.literal_eval(data)['SID']
Atd_Date = ast.literal_eval(data)['Date']
Atd_InTime = ast.literal_eval(data)['Time']
print ('Inserting a new row into table')
tsql = "INSERT INTO attendance (Atd_Date, Atd_InTime, SID) VALUES (?,?,?);"
with cursor.execute(tsql,Atd_Date,Atd_InTime,SID):
print ('Successfuly Inserted!')
Однако я не смог этого сделать. Приведенный выше код Python не работает должным образом. Я также получил эту ошибку:
с cursor.execute (tsql, Atd_Date, Atd_InTime, SID):
NameError: имя 'Atd_Date' не определено