不发送与Postgres – Pandas相关的密码

我想读一个Excel表格到pandas,然后将表单传递给一个新的尚未创build的PostgreSQL数据库。

根据文档构build我的urlhttp://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#postgresql ,我正在使用实用助手来确定数据库是否存在。

所以这是我的代码(Python 3)

import pandas as pd # import sqlite3 # con = sqlite3.connect(':memory:') import psycopg2 from sqlalchemy import create_engine from sqlalchemy_utils import database_exists, create_database xls = pd.ExcelFile('C:/Users/sayth/Downloads/June_TSO_Coaching/book2.xlsx') data = xls.parse('ThisOne', index_col=None, na_values=['NA']) engine = create_engine("postgres://localhost/mydb") if database_exists(engine.url): engine = create_engine('postgresql://postgres:mypass@localhost/mydb') data.to_sql('data',engine) else: create_database(engine.url) print("Created" + engine.url) # data.to_sql('data', con) pd.read_sql_query("SELECT * FROM data", con) 

然而,在一个相当长的错误,我注意到这部分似乎暗示在创build引擎中提供的密码没有被使用或find。

 C:\Users\sayth\Miniconda3\lib\site-packages\psycopg2\__init__.py in connect(dsn, database, user, password, host, port, connection_factory, cursor_factory, async, **kwargs) 162 for (k, v) in items]) 163 --> 164 conn = _connect(dsn, connection_factory=connection_factory, async=async) 165 if cursor_factory is not None: 166 conn.cursor_factory = cursor_factory OperationalError: (psycopg2.OperationalError) fe_sendauth: no password supplied 

我如何连接有什么问题?

 engine = create_engine("postgres://localhost/mydb") 

在这一行上,你也需要提供凭证。