我正在嘗試在 Python(Flask、SQLite env)中以逗號分隔檔案型別從 CSV 匯入資料,以插入到我的資料庫表中。
但是,一旦在 CSV 中讀取密碼列,我想對該資料應用哈希函式,然后將其插入資料庫表中。現在情況如何,我只能讀取所有輸入并將它們原始插入而無需修改。
我將如何在密碼列上實作它?
cursor.execute('CREATE TABLE IF NOT EXISTS Users(email TEXT NOT NULL PRIMARY KEY, password TEXT NOT NULL);')
file = open('data/Users.csv')
contents = csv.reader(file)
next(contents) # skip header row
insert_records = "INSERT INTO Users(email, password) VALUES(?, ?)"
cursor.executemany(insert_records, contents)
這是對列的期望效果
password = hashlib.md5(password.encode())
CVS 格式
Email, Password
john@yahoo.com, hackme!
到->
[email protected], $@RN_SOMEHASH_JW#W
謝謝!
uj5u.com熱心網友回復:
嘗試在引數化 SQL 之前通過串列理解構建一個帶有密碼分配的新迭代。確保with在讀取文本檔案后使用背景關系管理器自動關閉。
insert_records = "INSERT INTO Users(email, password) VALUES(?, ?)"
with open('data/Users.csv') as file:
contents = csv.reader(file)
next(contents) # skip header row
# LIST OF TUPLES WITH HASH CONVERSION ON SECOND ITEM
params = [(row[0], hashlib.md5(row[1].encode())) for row in contents]
cursor.executemany(insert_records, params)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/448511.html
