python在操做數據庫執行sql的時候咱們常常會遇到傳參問題,如下是我總結的幾種方法:html
一、格式化字符串python
city = 'beijing'
cur.execute(「SELECT * FROM %s WHERE city = %s」, city)
二、使用字典傳遞sql
sql = 「INSERT INTO user VALUES(%(username)s, %(password)s, %(email)s)」
value = {「username」:zhangsan,「password」:123456,「email」:123456@ouvps.com}
cur.execute(sql, value)
三、傳遞參數+參數名稱:利用‘三引號’實現複雜SQL的換行,而後對參數進行拼接,以下樣例中的time,根據本身的狀況而定數據庫
def sql_func(time):
time = "'" + time + "'"
fail_sql='''
SELECT substr(s_start_time,1,10) "日期",count(*) "失敗數量"
FROM T_SG_WS_EXE_LOG L
WHERE 1 = 1
AND (S_WS_METHOD = 'NotifyOrderStatus' OR (S_WS_METHOD = 'placeOrder' AND S_IS_OK = 'false'))
and s_request_str not like '%"deployStatus":"2120"%' and s_request_str not like '%"deployStatus":"0"%'
and substr(s_start_time,1,10) = '''+time +'''group by substr(s_start_time,1,10) ''' # 使用cursor進行各類操做 y=cr.execute(fail_sql) result = y.fetchall() return result參考文檔:https://www.cnblogs.com/goodhacker/p/3257882.html