1. 程式人生 > >python 獲取sqlite3資料庫的表名和表字段名

python 獲取sqlite3資料庫的表名和表字段名

Python中對sqlite3資料庫進行操作時,經常需要用到欄位名,然而對於sqlite使用select語句並不能象MySql等資料庫一樣返回帶欄位名的字典資料集。特別是對於一個不熟悉的sqlite資料庫,寫程式碼時如果需要藉助工具檢視,那其實是有點對不起python的。

下面兩段程式碼就可以輕易獲得一個sqlite資料庫中所有資料表名和欄位名的列表:

# python 獲取sqlite3資料庫mydb.db中的表名和表字段名

import sqlite3
conn=sqlite3.connect('mydb.db')
cu=conn.cursor()

#獲取表名,儲存在tab_name列表
cu.execute("select name from sqlite_master where type='table'")
tab_name=cu.fetchall()
tab_name=[tab_name[x][0] for x in range(len(tab_name))]

#獲取表的列名(欄位名),儲存在col_names列表
col_names=[]
for n in range(len(tab_name)):
    cu.execute('pragma table_info({})'.format(tab_name[n]))
    col_name=cu.fetchall()
    col_name=[col_name[x][1] for x in range(len(col_name))]
    col_names.append(col_name)