python - 信息 Schema.columns 返回不同的字符
问题描述
我想将表架构、表名、数据类型和列名导出到 JSON 文件。但是,我设法做到了,数据类型不会返回 varchar 的长度。
如何导出 varchar 的长度,而不是从信息模式中获取不同的字符。
导出.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 INFORMATION_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 文件中的内容。
解决方案
推荐阅读
- nginx - 许多网址在 nginx 上的最快重定向?
- typescript - 如何提示动态创建的类方法的类型?
- java - 证明迭代键的 `get` 的非空性
- apache-kafka - kafka-preferred-replica-election.sh 和 auto.leader.rebalance.enable 有什么区别?
- vb.net - 来自不同形式的错误会赶上其他形式
- sql - 合并具有相同 id 的行
- javascript - 将流式块数据解析为 JSON
- selenium-webdriver - Appium 不支持 chrome 浏览器版本 76
- c# - 从 SharedMailbox 中检索别名
- c++ - 我可以防止参数中的隐式转换为赋值运算符吗