Python使用sqlite3时如何获取SQL数据表的行名称
Python sqlite3 动态获取字段名实现方案
核心逻辑基于Python DB API 2.0 标准规范,所有合规的Python数据库驱动(sqlite3、pymysql、psycopg2等)都通用,无需新建文件、无需硬编码字段名,修改成本极低。
具体修改步骤
- 执行查询语句后,从游标对象的
description属性提取对应位置的字段名,cursor.description[i][0]对应查询结果第i个字段的字段名,和row[i]的位置一一对应,正好匹配SQLite DB Browser中显示的第0行表头内容。 - 把原有print语句里硬编码的
Name替换为提取到的动态字段名即可。
完整代码示例
import sqlite3 # 连接数据库(对接其他数据库时仅需修改此处的连接逻辑即可) conn = sqlite3.connect('你的数据库文件路径.db') cursor = conn.cursor() # 执行你的原有查询语句 cursor.execute("SELECT * FROM 你的表名 LIMIT 1") row = cursor.fetchone() # 新增这一行获取第一个字段的字段名,对应你原有代码里的row[0] col_name = cursor.description[0][0] # 替换原有硬编码Name的print语句,其他逻辑完全不变 print(f"\n{col_name}: {row[0]}\n") # 关闭连接 cursor.close() conn.close()
补充说明
如果后续需要适配多字段输出,仅需要调整description的索引即可:比如要获取第二个字段的名称就用cursor.description[1][0],和row[1]对应。
如果希望支持按字段名直接取数,不用记索引,可以设置行工厂:
# 连接数据库后新增这一行配置 conn.row_factory = sqlite3.Row # 后续取值可以直接写row['字段名'],不需要用索引 print(f"\n{col_name}: {row[col_name]}\n")
内容的提问来源于stack exchange,提问作者iUseYahoo
相关产品推荐
相关产品推荐

