查询sqlite3数据库

2024-09-30 16:26:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个程序来查询数据库。数据库是golfDB,它由一个名为players的表组成,其中有5个字段:name(玩家姓名)、totalGross(每轮总得分总和)、totalRounds(已玩的回合数)、pars(制造的pars总数)和birdies(制造的小鸟总数)。我的程序需要输出par最多的玩家,输入玩家的平均分数(totalGross/totalRounds),并按总总分从低到高的顺序列出玩家。现在我还没有真正研究过具有最多pars函数或排序分数的函数的播放器。我的平均分函数有问题。我遇到了这个错误,我真的不确定如何修复它:

Traceback (most recent call last):
  File "/Users/tinydancer9454/Documents/python/golfDBuserInterface.py", line 46, in <module>
    main()
  File "/Users/tinydancer9454/Documents/python/golfDBuserInterface.py", line 40, in main
    queryDBavgScore(cursor)
  File "/Users/tinydancer9454/Documents/python/golfDBuserInterface.py", line 29, in queryDBavgScore
    answer = totalGrossScore/ totalRoundsScore
TypeError: unsupported operand type(s) for /: 'tuple' and 'tuple'

这是我目前为止的代码:

^{pr2}$

Tags: 函数inpy程序line玩家usersdocuments
1条回答
网友
1楼 · 发布于 2024-09-30 16:26:51

SQLite3的fetchone返回一个元组,因此您需要在尝试div之前获取第一个项,否则您实际上将分割两个元组。在

totalGrossScore = cursor.fetchone()[0]
totalRoundsScore = cursor.fetchone()[0]

在本例中,您的查询只从一个字段获取数据,但请记住,一个查询可能返回多个字段,这就是fetchone返回元组的原因。在

相关问题 更多 >