我創建了一個名為fruits 的資料庫表,它有3 列,id(int 主鍵)、fruits(text) 和weight(float)。
| ID | 水果 | 重量 |
|---|---|---|
| 1 | 蘋果 | 80.5 |
| 2 | 梨 | 150.8 |
| 3 | 獼猴桃 | 69 |
如何創建字典并將所有水果和重量作為鍵值對添加到字典中?
import sqlite3
conn = sqlite3.connect("database.db")
sql = """SELECT fruit,weight FROM fruits"""
cursor = conn.execute(sql)
data = cursor.fetchall()
fruitweight= {}
i = 0
while(i < len(data)):
fruitweight['<fruitname>'] = <fruitweight>
i = i 1
uj5u.com熱心網友回復:
像這樣的東西:
for row in data:
name, weight = row
fruitweight[name] = weight
fetchall()根據您的查詢從資料庫中回傳值的元組串列。以上將元組解包為兩個變數。
如果你想花哨,你可以使用帶有元組解包的字典理解:
fruitweight = {name: weight for name, weight in data}
最后,execute()實際上回傳一個可以迭代的游標,因此我認為您的代碼可以簡化為以下內容:
import sqlite3
conn = sqlite3.connect("database.db")
sql = """SELECT fruit,weight FROM fruits"""
fruitweight = {name: weight for name, weight in conn.execute(sql)}
uj5u.com熱心網友回復:
我認為游標不正確,但您應該使用 for 回圈:
import sqlite3
conn = sqlite3.connect("database.db")
cur = conn.cursor()
sql = """SELECT fruit,weight FROM fruits"""
cur.execute(sql)
data = cur.fetchall()
fruitweight= {}
for i in data:
fruitweight[i[0]] = i[1]
conn.close()
print(fruitweight)
uj5u.com熱心網友回復:
你可以這樣做:
import sqlite3
with sqlite3.connect('/Users/andy/andy') as conn:
cursor = conn.execute('select fruit, weight from fruits')
D = dict()
for row in cursor.fetchall():
D[row[0]] = row[1]
print(D)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/311417.html
