标签: psycopg2

腌制对象是否可以可靠地编码为 Postgres 字符串(与 NOTIFY 一起发送)?

Postgres NOTIFY仅支持字符串文字(无二进制数据)。我设法通过以下方式将它与腌制对象一起使用:

message = cPickle.dumps(objectFoo)
cursor = connection.cursor() # this is psycopg2 connection
cursor.execute("NOTIFY channelFoo, %s", [message])
Run Code Online (Sandbox Code Playgroud)

但是,如果我将一些棘手的字节放入编码对象(例如 '\x80' 字符串)。从execute()以下位置返回错误:

psycopg2.DataError:编码“UTF8”的无效字节序列:0x80

有没有解决的办法?一种无论对象保存什么数据都可以可靠地将腌制对象序列化为 Postgres 字符串的方法?

python postgresql psycopg2 pickle

1
推荐指数
1
解决办法
1329
查看次数

无法安装 psycopg2

我正在尝试安装 psycopg2,以便我可以在 Python 和 Django 中使用 PostgreSQL。在尝试安装它的最后几个小时内,我遇到了多个错误,似乎无法解决最新的错误。当我运行时:

setup.py install
Run Code Online (Sandbox Code Playgroud)

在命令控制台中的 psycopg2 上,它尝试安装它,但在尝试link.exe在 Visual Studio 8 文件夹中执行时出现错误。

考虑到当我从 Windows 资源管理器和命令控制台启动该可执行文件时,这对我来说没有意义。我什至为它制作了一个环境变量。但是,它不断给出:

"error: command C:\Program Files(x86)\Microsoft Visual Studio 9.0\VC\BIN\link.exe" failed with exit status 1120
Run Code Online (Sandbox Code Playgroud)

windows installation linker command-line psycopg2

1
推荐指数
2
解决办法
8989
查看次数

无法使用psycopg2在postgres中插入None值

我有一个包含100多个列和行的数据库(PostgreSQL)。表中的某些单元格是空的,我使用python编写脚本,因此None值放置在空单元格中,但是当我尝试插入表中时会显示以下错误。

"  psycopg2.ProgrammingError: column "none" does not exist"
Run Code Online (Sandbox Code Playgroud)

我正在使用psycopg2作为python-postgres接口............有什么建议吗?

提前致谢......

这是我的代码:

list1=[None if str(x)=='nan' else x for x in list1];

cursor.execute("""INSERT INTO table VALUES %s""" %list1;
);
Run Code Online (Sandbox Code Playgroud)

python postgresql psycopg2

1
推荐指数
1
解决办法
4787
查看次数

查询在psql中工作但在Python中使用psycopg2时出现语法错误

我有一个在psql中运行良好的查询,但在我的程序中生成错误:

sql = 'SELECT id, x, y FROM table_name WHERE y NOT LIKE 'pa%' AND x IS NOT NULL;' 
cur.execute(sql)
Run Code Online (Sandbox Code Playgroud)

关于它为什么不起作用的任何指示?或者任何建议,我该怎么解决?

python postgresql psycopg2 psql

1
推荐指数
1
解决办法
939
查看次数

为什么我的数据库不能使用 django_extensions、postgres 和 psycopg2 重置?

我正在使用 django-extensionsreset_db命令并收到以下错误:

psycopg2.ProgrammingError: database "database_name" already exists
Run Code Online (Sandbox Code Playgroud)

我已经验证我的用户具有 CreateDB 和登录权限。所有软件包都是最新的。我怎么知道为什么它不能正确重置数据库?

django postgresql psycopg2 django-extensions

1
推荐指数
1
解决办法
477
查看次数

psycopg2.ProgrammingError:"st"\ r \n附近的语法错误,

在这里,我需要在python中的postgresql表中插入一些值.

我尝试下面的代码,但一个错误是"psycopg2.ProgrammingError:语法错误在或附近"st"\ r,referer:http:// localhost:8080 / "

conn = psycopg2.connect(database="Test", user="dev", password="123456", host="192.168.1.104", port="5432")
cursor = conn.cursor()

cursor.execute('''INSERT INTO signup (id, name, email, dob, address, mobile, password) VALUES (1,%s,%s,%s,%s,%s,%s)''' % (name,email,dob,address,mobile,password))
conn.commit()
Run Code Online (Sandbox Code Playgroud)

请解决这个问题,提前谢谢.....

python psycopg2 insert

1
推荐指数
1
解决办法
1万
查看次数

Psycopg2在postgres数据库中插入python字典

在python 3+中,我想将字典(或pandas数据帧)中的值插入数据库.我选择了带有postgres数据库的psycopg2.

问题是我无法找到正确的方法来做到这一点.我可以轻松地连接要执行的SQL字符串,但psycopg2文档明确警告不要这样做.理想情况下我想做这样的事情:

cur.execute("INSERT INTO table VALUES (%s);", dict_data)
Run Code Online (Sandbox Code Playgroud)

并希望执行可以弄清楚dict的键与表中的列匹配.这没用.从psycopg2文档的例子我得到了这种方法

cur.execute("INSERT INTO table (" + ", ".join(dict_data.keys()) + ") VALUES (" + ", ".join(["%s" for pair in dict_data]) + ");", dict_data)
Run Code Online (Sandbox Code Playgroud)

我得到了一个

TypeError: 'dict' object does not support indexing
Run Code Online (Sandbox Code Playgroud)

将字典插入到具有匹配列名的表中的最为植物方式是什么?

postgresql dictionary psycopg2 python-3.x

1
推荐指数
1
解决办法
6029
查看次数

非法指令:4运行Django时

我现在干净安装了Django v1.11.10.当我运行python manage.py runserver一切正常.但是当我尝试连接到Postgres数据库时,我安装了包pip install psycopg2,修改了DATABASESvaribale,在运行runserver命令后它失败并Illegal instruction出现错误:

Performing system checks...

System check identified no issues (0 silenced).
Illegal instruction: 4
Run Code Online (Sandbox Code Playgroud)

它是什么?如何获取日志错误?我使用Mac OS 10.11.6,PostgresApp(尝试在v9和v10服务器上检查错误源).Python 3.6.4(通过virtualenv).

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydb',
        'USER': 'sirjay',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '',
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我设置NAMEUSER不正确,或者即使我关闭Postgres.app服务器,错误也是一样的.这就像Django没有看到Postgres.但随着phpPgAdmin我可以连接到Postgres服务器.

python django postgresql psycopg2

1
推荐指数
1
解决办法
1538
查看次数

无法安装psycopg2(pip安装psycopg2)

我正在使用MAC和python版本2.7.14

Collecting psycopg2
  Could not fetch URL https://pypi.python.org/simple/psycopg2/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:661) - skipping
  Could not find a version that satisfies the requirement psycopg2 (from versions: )
No matching distribution found for psycopg2
Run Code Online (Sandbox Code Playgroud)

python postgresql pip psycopg2

1
推荐指数
4
解决办法
9366
查看次数

在“ UPDATE”或附近的psycopg2语法错误

我已经读过一些有关“语法错误在或附近”的问答,但是没有一个可以解决我的问题。

错误示例:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
psycopg2.ProgrammingError: syntax error at or near "UPDATE"
LINE 1: DECLARE "teste" CURSOR WITHOUT HOLD FOR UPDATE applicant SET...
                                                ^
Run Code Online (Sandbox Code Playgroud)

请注意^右侧的UPDATE。我已经测试了更新脚本,pgadmin 4并且一切正常。

该脚本非常简单:

UPDATE applicant
SET cv_recrutai_entities = %s
WHERE id = %s
Run Code Online (Sandbox Code Playgroud)

我的代码基本上是:

def _connect_database():
    return psy.connect(
        dbname=settings.DATABASE['DBNAME'],
        host=settings.DATABASE['HOST'],
        port=settings.DATABASE['PORT'],
        user=settings.DATABASE['USER'],
        password=settings.DATABASE['PASSWORD'],
        application_name=settings.env
    )

# Connects to database
conn = _connect_database()
# Creats a named cursor
cur = conn.cursor('test')

# Execute …
Run Code Online (Sandbox Code Playgroud)

python postgresql psycopg2 sql-update

1
推荐指数
1
解决办法
714
查看次数