Python sqlite如何从生成的列表中查询和获取项目?
Posted
技术标签:
【中文标题】Python sqlite如何从生成的列表中查询和获取项目?【英文标题】:Python sqlite how to query and get an item from generated lists? 【发布时间】:2020-01-17 22:06:10 【问题描述】:我正在尝试在 sqlite 上运行查询并获取信息列表。然后我打算使用该列表返回该列表中的特定项目。代码如下:
c = conn.cursor()
c.execute("SELECT * FROM general_info WHERE product_name=?", (b,))
add_product_name = c.fetchall()
运行此命令后,我会得到一个列表。
print(type(add_product_name))
<class 'list'>
假设列表是:
print(add_product_name)
[(apple, banana, cherry)]
当我尝试获取该列表中的元素时
item1 = add_product_name[0]
print(item1)
它返回:
[(apple, banana, cherry)]
所以,正如您所见,我的列表在某种程度上不是一个正常的列表。有人知道发生了什么吗? 如果您知道的话,我可以使用关于 sqlite python 和 sql 查询的可靠文档。 很抱歉叙述混乱,希望这能解释我的问题。
【问题讨论】:
你必须在 add_product_name 中为 x 做一个 你确定你在上一个例子中得到的是一个列表而不是一个元组吗? @GiovaniSalazar,试过了,每次迭代都会返回整个列表。 @IainShelvington 我不确定我得到了什么,但输出与我的上一个示例相同。因此,即使它是一个元组,tup[x] 也无法获取元素? wait ..SELECT * FROM general_info WHERE product_name= 这应该只给我 1 行?? 【参考方案1】:这样解决:
var_group = [var1,var2,var3]
c = conn.cursor()
c.execute("SELECT * FROM general_info WHERE product_name=?", (b,))
add_product_name = c.fetchone()
for x in add_product_name
var_group[i] = x
i += 1
虽然它并没有让它变得更简单,但它是一个解决方案。我希望有更直接的方式。
感谢@GiovaniSalazar 和@Iain Shelvington。
【讨论】:
获取此参考,在这种情况下使用 fetchone 或 fetchall pynative.com/…以上是关于Python sqlite如何从生成的列表中查询和获取项目?的主要内容,如果未能解决你的问题,请参考以下文章
将数据从列表视图(从 Rest Api 生成)传递到另一个活动并将其保存到 SQLite 数据库中