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

import pymysql
import json

def mysql_connect(用户名: str = 'root',
                  密码: str = 'root',
                  ip地址: str = '127.0.0.1',
                  端口号: int = 3306,
                  数据库名: str = 'test',
                  字符集: str = 'utf8mb4'):
    connection = pymysql.connect(host=ip地址,
                                  user=用户名,
                                  password=密码,
                                  port=端口号,
                                  database=数据库名,
                                  charset=字符集)
    try:
        cursor = connection.cursor()
        cursor.execute("SHOW TABLES")
        结果集 = cursor.fetchall()
        json_data = {}

        for 表名 in 结果集:
            表名 = 表名[0]  # 获取表名
            cursor.execute(f"SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='{数据库名}' AND TABLE_NAME='{表名}'")
            列数据 = cursor.fetchall()
            字段集 = []
            for 列 in 列数据:
                列名, 数据类型, 注释 = 列
                字段集.append({
                    "col": 列名,
                    "datatype": 数据类型,
                    "comment": 注释 if 注释 else ''  # 使用 if-else 来避免 None
                })
            json_data[表名] = 字段集

    finally:
        connection.close()

    return json_data

# 调用函数并打印结果
result_json = mysql_connect(密码='123456', 数据库名='rkey_blog')
print(json.dumps(result_json, ensure_ascii=False, indent=4))

 

评论

发表回复

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