【问题标题】:Create table using a python dataframe into Postgres SQL on redshift via python sqlalchemy通过 python sqlalchemy 在 Redshift 上使用 python 数据框创建表到 Postgres SQL
【发布时间】:2021-10-03 00:35:15
【问题描述】:

我想在 Redshift 中创建一个表。我的主机密码是:michael@144。我无法更改此密码,因为它涉及很多协议,因此当我尝试创建和连接引擎时,我收到错误消息。我认为错误是由于我的密码中的“@”干扰了创建引擎的常用语法

以下是我正在使用的代码片段:

engine =
sal.create_engine('postgresql+psycopg2://mike:michael@144@server_name:5112/database_name')

Error : could not translate host name "144@server_name" to address: Unknown server error

问题是语法中有多个“@”字符。我应该如何编写语法以便它可以将我连接到我的服务器

【问题讨论】:

  • 我也有类似的情况。你设法解决了这个问题吗?我试过这个字符串格式化程序,还是不行,create_engine( "postgresql:// {username}: {password} @ {hostname}/ {db_name}". format(username=settings.POSTGRES_USERNAME, password=settings.POSTGRES_PASSWORD, hostname=settings.POSTGRES_HOSTNAME, db_name=settings.POSTGRES_DB),

标签: python sql python-3.x sqlalchemy


【解决方案1】:

最初,我厌倦了使用字符串格式化但没有用,

create_engine( "postgresql:// {username}: {password} @ {hostname}/ {db_name}". format(username=settings.POSTGRES_USERNAME, password=settings.POSTGRES_PASSWORD, hostname=settings.POSTGRES_HOSTNAME, db_name=settings.POSTGRES_DB),

但是将@ 更改为%40 似乎有效。 例如: create_engine( "postgresql://username:p%40ssword@hostname/db_name"

密码p@ssword 到p%40word

【讨论】:

    猜你喜欢
    • 2020-09-05
    • 2018-06-22
    • 2019-12-12
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 2020-06-02
    • 2021-03-13
    • 2018-01-26
    相关资源
    最近更新 更多