pyhon通过读取excel的表结构数据,形成建表语句

excel中需要包含:第一列为字段名称,第二列为字段类型,第三列为字段长度,第四列为是否为主键利用Y/N区分

import xlrd
import os

def convert_type(data_type):
    """Normalize MySQL `data_type`"""
    if 'CHAR' == data_type:
        return 'varchar'
    elif 'CLNT' == data_type:
        return 'varchar'
    elif 'NUMC' == data_type:
        return 'numeric'
    elif 'DATS' == data_type:
        return 'timestamp'
    elif 'QUAN' == data_type:
        return 'varchar'
    elif 'CUKY' == data_type:
        return 'varchar'
    elif 'CURR' == data_type:
        return 'varchar'
    elif 'DEC' == data_type:
        return 'varchar'
    elif 'INT4' == data_type:
        return 'varchar'
    elif 'TIMS' == data_type:
        return 'varchar'


    else:
        return data_type

# 在postgresql中创建表
def postgres_create(fields):
    stg_table_name = 'dw_stg.stg_cus_dim_' + fields[0]['table_name']
    edw_table_name = 'dw_edw.edw_cus_dim_' + fields[0]['table_name']
    columns = []
    primary_key = []
    for field in fields:
 
Python中,如果你想要读取HSQLDB(HyperSQL)数据库的语句,并将其转换成Excel文件,你可以按照以下步骤操作: 1. 首先,安装必要的库:你需要`pandas`库用于数据处理,`pyhsqldb`用于连接HSQLDB,以及`openpyxl`或`xlsxwriter`库用于创Excel文件。可以使用`pip install pandas pyhsqldb openpyxl` 或者 `pip install pandas pyhsqldb xlsxwriter`命令安装。 2. 使用`pyhsqldb`库连接到HSQLDB数据库并运行SQL查询获取语句。例如,假设你知道数据库地址、用户名、密码和需要提取信息的名: ```python import pyhsqldbc conn = pyhsqldbc.connect( database='your_database', user='your_username', password='your_password' ) cursor = conn.cursor() cursor.execute("SELECT create_table_statement FROM information_schema.tables WHERE table_name = 'your_table'") create_table_sql = cursor.fetchone()[0] ``` 3. 解析SQL创语句,通常这是一个字符串,包含列名、数据类型等信息。这一步可能需要一些SQL解析的知识或者正则达式来提取所需的数据。 4. 将解析后的数据转换成`pandas.DataFrame`,以便更容易地导出到Excel。例如: ```python import pandas as pd columns = [col.strip() for col in create_table_sql.split(',')] data = [{'column': col} for col in columns] # 这里只是一个示例,实际数据取决于SQL内容 df = pd.DataFrame(data) ``` 5. 最后,使用`openpyxl`或`xlsxwriter`将DataFrame写入Excel文件: ```python from openpyxl import Workbook # 或者使用 xlsxwriter # import xlsxwriter if 'openpyxl' in locals(): wb = Workbook() ws = wb.active ws.append(df.columns) ws.extend(df.values.tolist()) wb.save('table_info.xlsx') elif 'xlsxwriter' in locals(): writer = xlsxwriter.Workbook('table_info.xlsx') ws = writer.add_worksheet() ws.write_row(0, 0, df.columns) ws.write_rows(1, 0, df.values) writer.close() ``` 注意:上述过程假设了你已经知道如何从创的SQL语句中提取有效信息,实际操作可能会因为SQL结构的不同而有所变化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值