Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中获取sqlite数据并进行计算?_Python_Database_Sqlite - Fatal编程技术网

如何在python中获取sqlite数据并进行计算?

如何在python中获取sqlite数据并进行计算?,python,database,sqlite,Python,Database,Sqlite,我希望获取特定行中的数据,并能够使用它执行计算,到目前为止,我有以下几点: 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,) 13.5 我不能用那个做任何计算。我决定将fetchone()方法视为一个元组,并得出以下结论:

我希望获取特定行中的数据,并能够使用它执行计算,到目前为止,我有以下几点:

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,)
13.5
我不能用那个做任何计算。我决定将fetchone()方法视为一个元组,并得出以下结论:

cur.fetchone()[0]
返回

(13.5,)
13.5
我可以这样做,但我认为这是一个肮脏的解决方案。还有其他方法获取数据吗? 我也试过了

for row in cur.fetchall():
   print(row[0])
它返回了一个我可以使用的真实数字,但我不知道为什么它有效

13.5

我可以用的号码。我不知道这两个解决方案中哪一个更好,或者是否有更有效的解决方案。你能不能给我一个简单的解释,我发现他们有点混乱。非常感谢您的帮助。

它不脏。这就是使用Python的低级sql的工作原理。Tuple表示列(按照
select
语句中定义的顺序,请记住不要使用
select*
,因为不能保证您将以什么顺序接收数据)。因此,
cur.fetchone()[0]
绝对可以(只要
price
select
query中是第一位的)


另一方面,
fetchall
返回满足查询的所有行的列表。因此,调用
fetchall
的结果是始终一个元组列表。但它可能是一个空列表。基本上,
fetchone
fetchall
做的事情相同,只是它从
fetchall
获取下一行(因此多次调用
fetchone
将获取
fetchall
中的所有行)。请注意,如果没有更多数据,
fetchone
将返回
None

它不是脏的。这就是使用Python的低级sql的工作原理。Tuple表示列(按照
select
语句中定义的顺序,请记住不要使用
select*
,因为不能保证您将以什么顺序接收数据)。因此,
cur.fetchone()[0]
绝对可以(只要
price
select
query中是第一位的)


另一方面,
fetchall
返回满足查询的所有行的列表。因此,调用
fetchall
的结果是始终一个元组列表。但它可能是一个空列表。基本上,
fetchone
fetchall
做的事情相同,只是它从
fetchall
获取下一行(因此多次调用
fetchone
将获取
fetchall
中的所有行)。请注意,如果没有更多数据,
fetchone
将返回
None

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

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

您知道sqlite可以正确地进行一些计算(通常人们用python进行计算,但您可以直接对sqlite查询进行计算),您知道sqlite可以正确地进行一些计算(通常人们用python进行计算,但您可以直接对sqlite查询进行计算)