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如何从生成的列表中查询和获取项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何从python中的SQLite查询中获取单个结果?

如何在运行时生成卡片视图以显示来自 Sqlite 的数据?

如何从列表Xamarin Forms中获取所选项目?

将数据从列表视图(从 Rest Api 生成)传递到另一个活动并将其保存到 SQLite 数据库中

Xamarin/SQLite/C# - 如何使用菜单项删除从列表视图和 SQLite 表中删除一行

让 Python 更加充分的使用 Sqlite3