将 python(语音识别文本)插入 SQL 服务器数据库
Insert python (voice recognition text) to SQL Server database
我使用了一个带有 python 的语音识别应用程序,其中你所说的文本保存在一个名为“yourtext.txt”的文件中,我试图将它连接到一个 SQL 服务器数据库,其中结果将被添加到文本文件以及 SQL 服务器 table voice2text.dbo.yourtext (id, 'text1')
任何帮助将不胜感激。
注意:我在第 19 行的 SQL 命令中有一个语法错误,但我不知道如何修复它...
import speech_recognition as sr
import pyaudio
import pyodbc
r = sr.Recognizer()
with sr.Microphone() as source :
print("Say Something, pwease :")
audio = r.listen(source)
try :
text = r.recognize_google(audio, language="fr-FR")
conn = pyodbc.connect('Driver={SQL Server};'
'Server=VEGA\SQLEXPRESS;'
'Database=voice2text;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
sqlcommand = (" insert into yourtext values ('"text"')")
cursor.execute(sqlcommand)
conn.commit()
conn.close()
print(text,file = open("yourtext.txt","a"))
except :
print("Sorry, could not hear !")
到 join/concatenate 来自变量的字符串你必须使用 +
sqlcommand = " insert into yourtext values ('" + text + "')"
但使用 ?
并在执行
中将文本作为参数发送会更安全
execute("INSERT INTO yourtext VALUES (?)", (text,) )
顺便说一句:execute()
需要 tuple
带参数——即使你只有一个参数。 (text,)
中需要逗号才能创建 tuple
。括号 ()
不会创建 tuple
。它们仅将 text,
与该行中的其他逗号分开。
我使用了一个带有 python 的语音识别应用程序,其中你所说的文本保存在一个名为“yourtext.txt”的文件中,我试图将它连接到一个 SQL 服务器数据库,其中结果将被添加到文本文件以及 SQL 服务器 table voice2text.dbo.yourtext (id, 'text1')
任何帮助将不胜感激。
注意:我在第 19 行的 SQL 命令中有一个语法错误,但我不知道如何修复它...
import speech_recognition as sr
import pyaudio
import pyodbc
r = sr.Recognizer()
with sr.Microphone() as source :
print("Say Something, pwease :")
audio = r.listen(source)
try :
text = r.recognize_google(audio, language="fr-FR")
conn = pyodbc.connect('Driver={SQL Server};'
'Server=VEGA\SQLEXPRESS;'
'Database=voice2text;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
sqlcommand = (" insert into yourtext values ('"text"')")
cursor.execute(sqlcommand)
conn.commit()
conn.close()
print(text,file = open("yourtext.txt","a"))
except :
print("Sorry, could not hear !")
到 join/concatenate 来自变量的字符串你必须使用 +
sqlcommand = " insert into yourtext values ('" + text + "')"
但使用 ?
并在执行
execute("INSERT INTO yourtext VALUES (?)", (text,) )
顺便说一句:execute()
需要 tuple
带参数——即使你只有一个参数。 (text,)
中需要逗号才能创建 tuple
。括号 ()
不会创建 tuple
。它们仅将 text,
与该行中的其他逗号分开。