繁体   English   中英

如何在python中使用sqlite数据获取和进行计算?

[英]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]绝对可以(只要priceselect查询中排在第一位)。

另一方面, fetchall返回满足查询条件的所有行的列表。 因此,调用fetchall的结果始终是一个元组列表。 它可能是一个空列表。 基本上fetchone做同样的事情, fetchall除了它会从下一行fetchall (因此多次调用fetchone将让你在所有行fetchall )。 请注意,如果没有更多数据, fetchone将返回None

我不确定你为什么认为它很脏。 但是有一点:您说您将方法视为元组,但这显然是不对的:该方法返回一个元组。 很好:您只需使用[0]访问它的第一个元素,就如同访问其他任何元组一样。 不需要任何额外的循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM