如果表是变量(python),如何从 SQLite 表中选择
Posted
技术标签:
【中文标题】如果表是变量(python),如何从 SQLite 表中选择【英文标题】:How to select from SQLite table if table is variable (python) 【发布时间】:2020-11-03 09:20:38 【问题描述】:我正在尝试从 SQLite 表中进行选择,但我想使用变量而不是指定表名。我正在编写一个类,该类根据在以前的 tkinter 顶层输入的关键字访问不同的表。我已将关键字带入课堂,但我不能使用 self.keyword 或通常的('SELECT blah blah FROM ?',(self.keyword,))。我在网上搜索并找不到任何东西。任何建议将不胜感激。
【问题讨论】:
我相信你必须使用纯字符串替换,即"select blah blah from %s" % name_of_table
你得到的错误是什么?见:***.com/questions/228912/…
您不能在表名和列名上使用占位符。
@acw1668:该建议不是为了使用占位符,而是为了使用字符串格式。
@Bryan 我的评论是关于在表名上使用占位符的 OP。
【参考方案1】:
Python 支持在字符串中替换变量的各种方法,
顺序很重要的替换
mycursor.execute("SELECT blah blah FROM ? WHERE name = ?",
['MYTABLE', 'salik'])
mycursor.execute("SELECT blah blah FROM WHERE name = ".format("MYTABLE","salik"))
顺序无关的替换
mycursor.execute("SELECT blah blah FROM :table_name WHERE name = :name",
name: 'salik', table_name: 'MYTABLE')
使用上述任何一种方法
我个人建议您使用 format 方法来学习格式化字符串
【讨论】:
.format 还允许您更改小数点后的数字以上是关于如果表是变量(python),如何从 SQLite 表中选择的主要内容,如果未能解决你的问题,请参考以下文章