首页 > 解决方案 > 如何在 Python 中使用类似 SQLite 的数据

问题描述

我想从 SQLite 数据库中提取数据。但它不是这样工作的:

 con = sqlite3.connect('myTable.db')
 cur = con.cursor()
 cur.execute("SELECT * FROM users Where user_id= '{0}'".format(curent_user_id)
 a = cur.fetchall() #output: [('1022197197', 'En', '{"JSON_FORMAT_DATA": "bsq83l0gt21xmjp6vcrnf9ea5kuo7y"}')]
 con.close()

 print(a[0])

我希望输出是这样的:'1022197197'。如何才能做到这一点?

标签: python

解决方案


您的情况下的fetchall()函数返回一个元组列表。当你运行时print(a[0]),你只会得到列表中的第一个元组。这不是最干净的,但请尝试print((a[0])[0])

另外作为旁注,据我所知,您使用的 {} format() 方法容易受到 SQL 注入攻击。我会将该行更改为:

c.execute("SELECT * FROM users WHERE user_id=:user_id", {'user_id': current_user_id})


推荐阅读