Я новичок в питоне. В настоящее время у меня есть код Python для вставки новых данных в мою базу данных Microsoft SQL, и я делаю это следующим образом:
import pyodbc
cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
"Server=DESKTOP-H7KQUT1;"
"Database=SAOS1;"
"Trusted_Connection=yes;")
cursor = cnxn.cursor()
print ('Inserting a new row into table')
#Insert Query
tsql = "INSERT INTO attendance (Atd_Date, Atd_InTime, Atd_OutTime, SID) VALUES (?,?,?,?);"
with cursor.execute(tsql,'2018/11/14','07:11:34','14:32:11','18010321'):
print ('Successfuly Inserted!')
Однако с другой стороны у меня есть проект Arduino, который записывает посещаемость студентов с помощью отпечатков пальцев. Последовательный монитор будет отображать выходные данные, когда будет найдено совпадение. Мой код Arduino:
void setup()
{
....
}
void loop()
{
...
//Found a match
Serial.println("{'SID':"+ String(finger.fingerID) +",'Time':"+ String(timeString) +"}");
}
Пример вывода будет таким:
{'SID':1,'Time':07:11:13}
Я хотел бы поймать этот вывод из последовательного порта и позволить моему коду python получить этот вывод и сохранить его в базе данных 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()
#initial serial port
arduino = serial.Serial('COM4', 9600, timeout=.1)
#fetch data from serial
data = arduino.readline()[:-2].decode("utf-8")
if data!="":
SID = ast.literal_eval(data)['SID']
Atd_InTime = ast.literal_eval(data)['Time']
print ('Inserting a new row into table')
#Insert Query
tsql = "INSERT INTO attendance (Atd_Date, Atd_InTime, Atd_OutTime, SID) VALUES (?,?,?,?);"
with cursor.execute(tsql,'2018/11/14','Time','14:32:11','SID'):
print ('Successfuly Inserted!')
Но я не смог этого сделать. Я не совсем уверен, что это правильный способ. Кроме того, я получаю такую ошибку:
строка 24 с cursor.execute (tsql, '2018/11/14', 'Time', '14:32:11', 'SID'): сбой преобразования при преобразовании даты и / или времени из символьной строки.
CREATE TABLE ...
. - person stovfl   schedule 17.11.2018