如何从SQLite3的fruits表查询数据并存储为Python字典键值对
实现方法
你通过fetchall()拿到的data是由元组组成的列表,每个元组对应一行查询结果,顺序和你SELECT语句里的字段顺序一致,第一个元素是水果名,第二个是对应重量。
方法1:修改你现有的while循环实现
把循环里的占位符替换为对应下标的元组元素即可:
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)): # 取元组第0位作为字典键,第1位作为字典值 fruitweight[data[i][0]] = data[i][1] i = i+1 # 用完记得关闭数据库连接 conn.close() # 测试输出 print(fruitweight)
运行后输出结果为:{'Apple': 80.5, 'Pear': 150.8, 'Kiwi': 69.0}
方法2:更简洁的字典推导式实现
不需要手动写循环计数,直接遍历data生成字典,代码更精简,是Python的惯用写法:
import sqlite3 conn = sqlite3.connect("database.db") data = conn.execute("SELECT fruit,weight FROM fruits").fetchall() fruitweight = {fruit: weight for fruit, weight in data} conn.close()
内容的提问来源于stack exchange,提问作者Trelaquix
相关产品推荐
相关产品推荐

