SQLite查询无法获取数字列名的列值,仅输出列名数字本身
问题原因与解决方法
你的问题出在SQL语句的写法上:当列名是纯数字(比如80)时,直接写SELECT t,80 FROM SS_SZT,SQLite会把80当成数字常量,而不是列名,所以每条结果里都会输出固定的80,而非对应列的实际内容。
要正确读取名为80的列,需要把数字列名用标识符包裹起来,SQLite支持三种方式:
- 双引号(
"80") - 方括号(
[80]) - 反引号(
`80`)
修改后的代码示例:
import sqlite3 def request(): with sqlite3.connect('sqlite_db.db') as sqlite_conn: # 用双引号包裹数字列名,推荐这种符合SQL标准的写法 sql_request = 'SELECT t,"80" FROM SS_SZT' sql_cursor = sqlite_conn.execute(sql_request) res = sql_cursor.fetchall() for i in res: print(i) request()
运行修改后的代码,就能同时获取t列和80列的实际值了。
内容的提问来源于stack exchange,提问作者Jabbatron
相关产品推荐
相关产品推荐

