信息Schema.columns返回字符变化

问题描述

我想将表架构,表名称,数据类型和列名称导出到JSON文件。我设法做到了,但是数据类型并没有返回varchar的长度。

如何导出varchar的长度,而不是使字符因信息模式而异。

Export.py:

def GetAllTables():
    conn = None

    try:

        params = config()
        conn = psycopg2.connect(**params)
        cur = conn.cursor()
        cur.execute("""SELECT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,DATA_TYPE
FROM @R_435_4045@ION_SCHEMA.COLUMNS;""")
        
        rows = cur.fetchall()

    
        rowarray_list = [] 
        for row in rows:
            rowarray_list.append({'table_schema':row[0],'table_name': row[1],'column_name':row[2],'data_type':row[3]})

        rowarray_file= 'static/api/tables.json'
        with open(rowarray_file,'w') as outfile:
            j = json.dump(rowarray_list,outfile,indent=4)

        cur.close()
    except(Exception,psycopg2.DatabaseError) as error:
        print(error)

    finally:
        if conn is not None:
            conn.close()    
     

这将返回我,例如:

{
    "table_schema": "x","table_name": "x1","column_name": "x11","data_type": "character varying"
}

但是,MysqL中的数据类型是varchar(255)。这就是我要提取到JSON文件中的内容

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)