簡體   English   中英

Python從字典中刪除單引號

[英]Python remove the single quotes from the dictionary

我有以下PostgreSQL查詢

data = {'token':"123",'kart_user':"tablename"}
select_stmt = "SELECT * FROM %(kart_user)s WHERE token = %(token)s"
self.cur.execute(select_stmt, data)
result = self.cur.fetchone() 

在選擇查詢中, %(kart_user)s以單引號的形式表示
我的問題是如何從同一個查詢中刪除引號?

使用SQL參數的整是,以防止數據被解釋為SQL對象或語法。 您不能使用SQL參數來命名表; 您只能將SQL參數用於數據。

您必須單獨插入表名。 這確實意味着您冒着將代碼打開到SQL注入的風險; 如果這是源自用戶輸入,我會根據已知表名列表測試表名。

assert data['kart_user'] in known_tables
select_stmt = "SELECT * FROM {} WHERE token = %(token)s".format(data['kart_user'])
self.cur.execute(select_stmt, data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM