[英]How to fetch and make calculations with sqlite data in python?
我想获取特定行中的数据并能够使用它执行计算,到目前为止,我已经做到了:
import sqlite3 as lite
con=con.connect(mydatabase.db)
cur=con.cursor()
query=cur.execute("SELECT price from items where ID=1")
print(cur.fetchone())
哪个返回
(13.5,)
我无法对此进行任何计算。 我决定将fetchone()方法视为一个元组,并提出了以下建议:
cur.fetchone()[0]
哪个返回
13.5
我可以使用它,但是我认为这是一个肮脏的解决方案,是否还有其他方法可以获取数据? 我也尝试过
for row in cur.fetchall():
print(row[0])
它返回一个我可以使用的实数,但是我不知道为什么这样。
13.5
我可以使用的号码。 我不知道这两种解决方案中哪个更好,或者是否有更有效的解决方案。 您能否也简要介绍一下提取对象,我发现它们有些令人困惑。 谢谢您的帮助,不胜感激。
不脏 这就是使用Python的低级sql的工作方式。 元组表示列(按照select
语句中定义的顺序,请记住,不应使用select *
因为不能保证将以什么顺序接收数据)。 因此, cur.fetchone()[0]
绝对可以(只要price
在select
查询中排在第一位)。
另一方面, fetchall
返回满足查询条件的所有行的列表。 因此,调用fetchall
的结果始终是一个元组列表。 它可能是一个空列表。 基本上fetchone
做同样的事情, fetchall
除了它会从下一行fetchall
(因此多次调用fetchone
将让你在所有行fetchall
)。 请注意,如果没有更多数据, fetchone
将返回None
。
我不确定你为什么认为它很脏。 但是有一点:您说您将方法视为元组,但这显然是不对的:该方法返回一个元组。 很好:您只需使用[0]
访问它的第一个元素,就如同访问其他任何元组一样。 不需要任何额外的循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.