Python 3.5插入sql存储变量

2024-04-25 19:52:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写我的第一个Python脚本来检查电子邮件,然后解析出一些数据,然后插入到microsoftsql数据库中。我在如何插入保存的变量t时遇到问题。你知道吗

import imaplib
import email
import re
import _mssql


m = imaplib.IMAP4_SSL("imap.gmail.com", 993)
m.login("username","password$")
m.select('"Fire_Dispatch"')

result, data = m.search(None, "ALL") # search all email and return uids
if result == 'OK':
    for num in data[0].split():
        result, data = m.fetch(num,"(BODY[TEXT])")
        if result == 'OK':
            email_message = email.message_from_string(data[0]  [1].decode('utf-8'))    # raw email text including headers 
p = str(email_message)
a = re.search("ALLCFD(.*)",p)

t = (a.groups(1))
print (t)

conn = _mssql.connect(server='server', user='username',    password='password', database='CFD_Calls')

conn.execute_non_query("INSERT INTO calls (call_date_time,call)VALUES('3',t)")

m.close()
m.logout()  

Tags: importremessagesearchdataifemailusername
1条回答
网友
1楼 · 发布于 2024-04-25 19:52:48

您需要在sql执行中提供t变量。一种方法是:

conn.execute_non_query("INSERT INTO calls (call_date_time,call) VALUES('3',?)", (t,))

我假设t将是一个字符串。注意,当提供给sql命令时,变量被封装在一个元组中。这是因为命令要求参数是序列。你知道吗

相关问题 更多 >