草庐IT

psycopg2cffi

全部标签

python - 从 psycopg2 异常中获取错误消息

这是我第一个广泛使用psycopg2的项目。我正在尝试找到一种方法来提取连接尝试失败时的psql错误消息。我已经测试过,如果所有变量都设置正确,下面的代码将起作用,但是每当发生错误情况(例如,用户选择了一个不存在的数据库)时,Python都会给我以下信息:IamunabletoconnecttothedatabaseNoneTraceback(mostrecentcalllast):File"./duplicate_finder.py",line163,inmain(sys.argv[1:])File"./duplicate_finder.py",line142,inmainprint

python - psycopg2 "TypeError: not all arguments converted during string formatting"

我正在尝试将二进制数据(漩涡哈希)插入PG表,但出现错误:TypeError:notallargumentsconvertedduringstringformatting代码:cur.execute("""INSERTINTOsessions(identity_hash,posted_on)VALUES(%s,NOW())""",identity_hash)我尝试在插入之前将conn.Binary("identity_hash")添加到变量中,但得到了同样的错误。identity_hash列是一个bytea。有什么想法吗? 最佳答案

python - Postgres/psycopg2 - 插入字符串数组

我将Postgres9和Python2.7.2与psycopg2一起使用,并尝试插入一个字符串值数组,并正确转义引号。示例:metadata={"Name":"Guest","Details":"['One','Two','Three']"}cur.execute("insertintometavalues('%s');"%metadata)抛出异常:psycopg2.ProgrammingError:syntaxerroratornear"One"LINE1:"Details":"['One...^我也试过使用Postgres的E和反斜杠一起转义,但还没有找到正确的组合。想法?

python - 如何在 psycopg2 中使用服务器端游标

我有一个包含400万行的表,我使用psycopg2执行:SELECT*FROM..WHEREquery我以前从未听说过服务器端游标,我正在阅读它是一种在您期望获得大量结果时的良好做法。我发现文档有些局限,而且我有一些基本问题。首先我将服务器端游标声明为:cur=conn.cursor('cursor-name')然后我执行查询:cur.itersize=10000sqlstr="SELECTclmn1,clmn2FROMpublic.tableWHEREclmn1LIKE'At%'"cur.execute(sqlstr)我的问题是:我现在该怎么办?我如何获得结果?我是否按以下方式遍历行

python - psycopg2 与服务器断开连接

我已经处理这个问题一段时间了。我安装了一台全新的机器。我已经安装了postgresql的新副本和所有其他依赖项。基本上,我会随机得到这些数据库断开连接。我可以执行相同的请求,但要么有效,要么无效。外观非常不确定。在Postgresql上查看日志,它甚至没有建立连接。现在,我希望如果它从未连接过,我会在建立连接和获取光标时遇到这个问题,但我会在稍后尝试实际使用连接时遇到它。鉴于下面的回溯,我希望看到在pg日志中建立连接,然后由于某种原因断开连接。我不知道,所以我想知道这种不匹配是否有线索。Traceback(mostrecentcalllast):File"/usr/local/lib/

python - 将 try/except 与 psycopg2 或 "with closing"一起使用?

我在Python中使用Psycopg2来访问PostgreSQL数据库。我很好奇使用withclosing()模式来创建和使用游标是否安全,或者我是否应该使用明确的try/except包裹查询.我的问题是关于插入或更新以及事务。据我了解,所有Psycopg2查询都发生在一个事务中,这取决于调用代码来提交或回滚事务。如果在withclosing(...block中发生错误,是否发出回滚?在旧版本的Psycopg2中,回滚是在close()上明确发出的,但是这情况不再如此(参见http://initd.org/psycopg/docs/connection.html#connection.

python - 为什么 cffi 比 numpy 快这么多?

我一直在尝试用python编写cffi模块,它们的速度让我怀疑我是否正确地使用了标准python。这让我想完全切换到C!说实话,有一些很棒的Python库我永远无法用C重新实现,所以这比任何实际情况都更像是假设。此示例显示了python中的sum函数与numpy数组一起使用,以及与c函数相比它有多慢。有没有更快的pythonic方法来计算numpy数组的总和?defcast_matrix(matrix,ffi):ap=ffi.new("double*[%d]"%(matrix.shape[0]))ptr=ffi.cast("double*",matrix.ctypes.data)for

python - 获取 psycopg2 count(*) 个结果

获取此查询返回的数字或行的正确方法是什么?我特别想看看是否没有返回任何结果。sql='SELECTcount(*)fromtableWHEREguid=%s;'data=[guid]cur.execute(sql,data)results=cur.fetchone()forrinresults:printtype(r)#Returnsasstring{'count':0L}Or{'count':1L}谢谢。 最佳答案 results本身是一个行对象,在您的情况下(根据声明的print输出判断)是一个字典(您可能配置了dict-lik

python - 您的数据库没有 South 数据库模块 'south.db.postgresql_psycopg2'

我是django的新手,我从南方收到这个错误,但我不知道我错过了什么。我在寻找答案,但找不到任何东西。ThereisnoSouthdatabasemodule'south.db.postgresql_psycopg2'foryourdatabase.Pleaseeitherchooseasupporteddatabase,checkforSOUTH_DATABASE_ADAPTER[S]settings,orremoveSouthfromINSTALLED_APPS.这是我的基本设置:fromunipathimportPathBASE_DIR=Path(__file__).ancest

python - 您的数据库没有 South 数据库模块 'south.db.postgresql_psycopg2'

我是django的新手,我从南方收到这个错误,但我不知道我错过了什么。我在寻找答案,但找不到任何东西。ThereisnoSouthdatabasemodule'south.db.postgresql_psycopg2'foryourdatabase.Pleaseeitherchooseasupporteddatabase,checkforSOUTH_DATABASE_ADAPTER[S]settings,orremoveSouthfromINSTALLED_APPS.这是我的基本设置:fromunipathimportPathBASE_DIR=Path(__file__).ancest