gpt4 book ai didi

python - 如何使用 psycopg2 以编程方式获取表结构

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:27 24 4
gpt4 key购买 nike

当我执行程序 application.py 时,我得到这个错误:

psycopg2.ProgrammingError
ProgrammingError: ERREUR: erreur de syntaxe sur ou près de « "/d" »
LINE 1: "/d" carto."BADGES_SFR"

(英文“ProgrammingError: ERREUR: « “/d” »”处或附近的语法错误)我这个程序的目标是获取表结构

这是以下代码application.py:

#!/usr/bin/python 2.7.6
# -*- coding:utf-8 -*-
import os
import sys
from flask import Flask,render_template
import psycopg2
reload(sys)
sys.setdefaultencoding('utf8')
app = Flask(__name__)

@app.route('/')
def fihoum():
conn = psycopg2.connect(database="carto", user="postgres", password="daed5Aemo", host="192.168.12.54")
cur = conn.cursor()
#cur.execute("SELECT * FROM carto.\"BADGES_SFR\"")
cur.execute("/d carto.\"BADGES_SFR\"")
rows = cur.fetchall()
return render_template('hello.html', titre="Données du client BADGES_SFR !",mots=rows)

if __name__=="__main__":
app.run(host=os.getenv('IP', '0.0.0.0'),
port=int(os.getenv('PORT',5000)),
debug=True)

最佳答案

首先是\d <table_name> (注意反斜杠 \d 而不是 /d ),但这只适用于 psql 互动终端

My [objective] with this program is to get the table structure

您可以使用 SQL 表 information_schema.columns里面有你想要的信息

SELECT column_name, data_type, is_nullable
FROM information_schema.columns
WHERE table_name = '<table_name>';

column_name | data_type | is_nullable
--------------------+-------------------+-------------
column_a | integer | YES
column_b | boolean | NO

这是可用列的列表:https://www.postgresql.org/docs/9.4/static/infoschema-columns.html

片段

import psycopg2
conn = psycopg2.connect(database='carto', user=..., password=...)

q = """
SELECT column_name, data_type, is_nullable
FROM information_schema.columns
WHERE table_name = %s;
"""

cur = conn.cursor()
cur.execute(q, ('BADGES_SFR',)) # (table_name,) passed as tuple
cur.fetchall()

# Example Output
[('column_a', 'integer', 'YES'),
('column_b', 'boolean', 'NO'),
...,
]

Jinja2/Flask 集成提示:

考虑使用 psycopg2.extras.DictCursor ,这将使您更容易根据 Flask 模板中的列名(字典键)提取信息,因为您将拥有一个可以访问的字典,例如使用 row['data_type'] , row['column_name']

关于python - 如何使用 psycopg2 以编程方式获取表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37478323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com