python - 使用一组值存储到数据库中
问题描述
我的目标:将分数数组存储到表中。
为什么是数组?使用该数组是因为我使用 pygame 收集分数并将每次尝试获得的每个分数保存在数组中,直到达到 10 次尝试并将数组传递到此处。
我期望从游戏中存储的数组中获得这些分数并将其存储到数据库中。如您所见,列 score1 到 score10 和 = ? 因为我不知道在问号里放什么。
我尝试使用 INSERT INTO 将其插入数据库,但我不能,因为我需要指定我需要它的 ID。我只剩下使用 UPDATE 了。
有没有办法可以使用这个分数数组将其存储到数据库中?
注意:我不能只将玩家获得的分数写入“?” 因为分数会有所不同。SELECT 只是在那里看看它是否有效。
非常感谢。
import sqlite3
conn = sqlite3.connect(':memory:')
conn.cursor()
score = [100, 20, 1000, 1002, 129, 1039, 400, 30, 300, 30]
conn.execute("""UPDATE Defender
SET score1=?, score2=?,
score3=?, score4=?,
score5=?, score6=?,
score7=?, score8=?,
score9=?, score10=?
WHERE defender_id=1""")
conn.commit()
conn.execute("SELECT score1 FROM Defender WHERE defender_id=1")
print(conn.fetchall())
conn.close()
解决方案
通常,该execute()
函数可以接受两个参数:查询本身和作为元组的数据(如果需要):
conn.execute(query, data)
所以你可以说:
query = """UPDATE Defender
SET score1=?, score2=?,
score3=?, score4=?,
score5=?, score6=?,
score7=?, score8=?,
score9=?, score10=?
WHERE defender_id=1""" #your query
score = [100, 20, 1000, 1002, 129, 1039, 400, 30, 300, 30] #your data
conn.execute(query, tuple(score))
推荐阅读
- javafx - BoundsLocatorException 在无头模式下运行 testfx
- kubernetes - 无法使用 NodePort 服务从浏览器访问 Microk8s 服务
- node.js - 使用 Node 和 Express 从 Cloudinary 中删除图像
- drake - 如何在 MultibodyPlant 中设置特定实体的摩擦属性(或任何 GeometryProperties)?
- networkx - 在 Networkx 中组合图:将图添加为子节点
- sqlalchemy - Alembic 自动生成空迁移文件
- graph - 使用树的 Gremlin 查询(JSON 输出)
- python - 在另一个脚本结束后运行 python 脚本
- jenkins - Jenkins 使用 json 报告发布者
- python-3.x - 从公式字符串中删除指数