簡體   English   中英

使用 python 腳本(數據庫 URI)連接到 postgresql,但將“conn”檢測為字符串

[英]Connect to postgresql using python script (database URI) but detects 'conn' as string

我正在使用一個簡單的 python 腳本來連接 postgresql,未來將僅使用該腳本將表創建到 postgresql 中。

我的代碼是:

try:
    conn =  "postgresql://postgres:<password>@localhost:5432/<database_name>"
    print('connected')

except:
    print('not connected')

conn.close() 

當我運行 python connect.py (我的文件名)時,它會拋出這個錯誤:

Instance of 'str' has no 'commit' member

很確定是因為它將“conn”檢測為字符串而不是數據庫連接。 我已遵循此文檔(33.1.1.2),但現在確定我是否做得對。 如何更正此代碼,以便將腳本連接到我的 postgresql 服務器,而不僅僅是將其檢測為字符串?

p/s:我對此很陌生。

您正在嘗試對字符串 object 調用方法。 相反,您應該首先建立與您的數據庫的連接。

我不知道允許使用完整連接字符串的驅動程序,但您可以使用psycopg2 ,它是 PostgreSQL 的常見 python 驅動程序。

安裝psycopg2后,您可以執行以下操作來建立連接並請求您的數據庫

import psycopg2
try:
    connection = psycopg2.connect(user = "yourUser",
                                  password = "yourPassword",
                                  host = "serverHost",
                                  port = "serverPort",
                                  database = "databaseName")

    cursor = connection.cursor()
except (Exception, psycopg2.Error) as error :
    print ("Error while connecting", error)
finally:
        if(connection):
            cursor.close()
            connection.close()

你可以按照這個教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM