获取sqlite数据库的所有表名以及其字段并形成json数据

import sqlite3
import json

def sqlite_connect(db_path: str):
    # 连接到 SQLite 数据库
    # 如果文件不存在,会自动在指定位置创建一个数据库文件
    connection = sqlite3.connect(db_path)
    json_data = {}
    try:
        with connection:
            with connection.cursor() as cursor:
                # 获取所有表名
                cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
                所有表 = cursor.fetchall()

                for 表名 in 所有表:
                    表名 = 表名[0]  # 获取表名
                    # 获取当前表的所有字段信息
                    cursor.execute(f"PRAGMA table_info({表名})")
                    列数据 = cursor.fetchall()
                    
                    # 存储当前表的所有字段信息
                    if 列数据:
                        json_data[表名] = [
                            {
                                "col": 列[1],  # Column name
                                "datatype": 列[2],  # Column type
                                "comment": None  # SQLite does not store column comments
                            } for 列 in 列数据
                        ]

    except Exception as e:
        print(f"An error occurred: {e}")
    finally:
        connection.close()

    return json_data

# 调用函数并打印结果
# 请替换 'your_database.db' 为你的 SQLite 数据库文件路径
result_json = sqlite_connect('your_database.db')
print(json.dumps(result_json, ensure_ascii=False, indent=4))

 

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注