标签: psycopg2

带参数的Pandas read_sql

是否有任何关于如何在Pandas中使用SQL查询传递参数的示例?

特别是我使用SQLAlchemy引擎连接到PostgreSQL数据库.到目前为止,我发现以下工作:

df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN %s AND %s'),
                   db,params=[datetime(2014,6,24,16,0),datetime(2014,6,24,17,0)],
                   index_col=['Timestamp'])
Run Code Online (Sandbox Code Playgroud)

Pandas文档说params也可以作为dict传递,但是我似乎无法通过尝试例如:

df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN :dstart AND :dfinish'),
                   db,params={"dstart":datetime(2014,6,24,16,0),"dfinish":datetime(2014,6,24,17,0)},
                   index_col=['Timestamp'])
Run Code Online (Sandbox Code Playgroud)

从Pandas运行这些类型的查询的推荐方法是什么?

python sql psycopg2 pandas

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

无法通过pip install安装psycopg2包...这是因为Sierra?

我正在为我的一个讲座工作项目,我需要下载包psycopg2才能使用正在使用的postgresql数据库.不幸的是,当我尝试pip安装psycopg2时会弹出以下错误:

ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?是因为Sierra没有支持某些套餐吗?提前致谢!

python pip psycopg2

50
推荐指数
7
解决办法
2万
查看次数

如何使用psycopg2获取postgres中的表格?

有人可以解释一下如何在当前数据库中获取表格吗?

我正在使用postgresql-8.4 psycopg2.

python psycopg2 postgresql-8.4

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

将表名作为参数传递给psycopg2

我有以下代码,使用pscyopg2:

sql = 'select %s from %s where utctime > %s and utctime < %s order by utctime asc;'
data = (dataItems, voyage, dateRangeLower, dateRangeUpper)
rows = cur.mogrify(sql, data)
Run Code Online (Sandbox Code Playgroud)

这输出:

select 'waterTemp, airTemp, utctime' from 'ss2012_t02' where utctime > '2012-05-03T17:01:35+00:00'::timestamptz and utctime < '2012-05-01T17:01:35+00:00'::timestamptz order by utctime asc;
Run Code Online (Sandbox Code Playgroud)

当我执行它时,它会失败 - 这是可以理解的,因为表名周围的引号是非法的.

有没有办法合法地将表名作为参数传递,或者我是否需要执行(显式警告)字符串连接,即:

voyage = 'ss2012_t02'
sql = 'select %s from ' + voyage + ' where utctime > %s and utctime < %s order by utctime asc;'
Run Code Online (Sandbox Code Playgroud)

为任何见解干杯.

python sql postgresql sql-injection psycopg2

48
推荐指数
3
解决办法
2万
查看次数

检查python下是否存在postgresql表(可能还有Psycopg2)

如何使用Psycopg2 Python库确定表是否存在?我想要一个真或假的布尔值.

python postgresql psycopg2

46
推荐指数
4
解决办法
3万
查看次数

使用psycopg2创建postgresql数据库

我正在尝试使用python脚本创建一个postgres数据库.一些研究表明,使用psycopg2模块可能是一种方法.我安装了它并在pg_hba.conf文件中进行了必要的更改.我使用以下代码创建数据库:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from psycopg2 import connect
import sys
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT

con = None
con = connect(user='****', host = 'localhost', password='****')

dbname = "voylla_production1710"

con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cur = con.cursor()
cur.execute('CREATE DATABASE ' + dbname)
cur.close()
con.close()
Run Code Online (Sandbox Code Playgroud)

我试图取代con = connect(user='nishant', host = 'localhost', password='everything')con = connect(user='nishant', password='everything')

但我得到以下错误:

con = connect(user='nishant', host = 'localhost', password='everything') 
 File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
connection_factory=connection_factory, async=async)
 psycopg2.OperationalError: FATAL:  database "nishant" does not exist
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我正确的做法.谢谢

python postgresql psycopg2

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

在Mac OS(Yosemite)上使用psycopg2的问题

目前我正在使用python在eclipse中安装psycopg2.

我发现了很多问题:

  1. 第一个问题sudo pip3.4 install psycopg2不起作用,它显示以下消息

错误:找不到pg_config可执行文件.

固定:export PATH=/Library/PostgreSQL/9.4/bin/:"$PATH”

  1. 当我在我的项目中导入psycopg2时,我会:

ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so Library libssl.1.0.0.dylib Library libcrypto.1.0.0.dylib

固定: sudo ln -s /Library/PostgreSQL/9.4/lib/libssl.1.0.0.dylib /usr/lib sudo ln -s /Library/PostgreSQL/9.4/lib/libcrypto.1.0.0.dylib /usr/lib

  1. 现在我得到:

ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so,2):找不到符号:_lo_lseek64引用自:/ Library/Frameworks/Python .framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so预期在/ library/Frame /Python.framework/Version/Python/lib中的/usr/lib/libpq.5.dylib /python3.4/site-packages/psycopg2/_psycopg.so

你能帮助我吗?

python eclipse postgresql macos psycopg2

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

将Python的Postgres psycopg2查询性能提高到与Java JDBC驱动程序相同的级别

概观

我正在尝试提高SQLAlchemy数据库查询的性能.我们正在使用psycopg2.在我们的生产系统中,我们选择使用Java,因为它速度提高了至少50%,即使不是接近100%.所以我希望Stack Overflow社区中的某个人能够提高我的表现.

我认为我的下一步将是最终修补psycopg2库,使其行为类似于JDBC驱动程序.如果是这种情况并且有人已经这样做了,那就没问题,但我希望我仍然可以通过Python进行设置或重构调整.

细节

我有一个简单的"SELECT*FROM someLargeDataSetTable"查询运行.数据集的大小为GB.快速表现图如下:

时间表

        Records    | JDBC  | SQLAlchemy[1] |  SQLAlchemy[2] |  Psql
-------------------------------------------------------------------- 
         1 (4kB)   | 200ms |         300ms |          250ms |   10ms
        10 (8kB)   | 200ms |         300ms |          250ms |   10ms
       100 (88kB)  | 200ms |         300ms |          250ms |   10ms
     1,000 (600kB) | 300ms |         300ms |          370ms |  100ms
    10,000 (6MB)   | 800ms |         830ms |          730ms |  850ms  
   100,000 (50MB)  |    4s |            5s |           4.6s |     8s
 1,000,000 (510MB) …

postgresql performance psycopg2 jdbc

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

使用psycopg2连接到数据库而不使用密码

我在localhost上有一个postgres数据库,我可以在没有密码的情况下访问

$ psql -d mwt
psql (8.4.12)
Type "help" for help.

mwt=# SELECT * from vatid;
  id   | requester_vatid |...
  -----+-----------------|...   
  1719 | IT00766780266   |...
Run Code Online (Sandbox Code Playgroud)

我想从django访问该数据库.所以我投入了DATABASES

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

由于我不需要密码来访问我的测试数据库,因此我没有PASSWORD在设置中提供任何值.

$ ./manage.py shell
>>> from polls.models import Vatid
>>> Vatid.objects.all()
  connection_factory=connection_factory, async=async)
  OperationalError: fe_sendauth: no password supplied
Run Code Online (Sandbox Code Playgroud)

我尝试使用,PASSWORD: ''但我收到相同的错误消息.我尝试使用,PASSWORD: None但这也没有帮助.

我一直在搜索关于这个的django文档,但我找不到任何有用的东西.可以配置django.db.backends.postgresql_psycopg2为接受空密码?

python django postgresql psycopg2

44
推荐指数
4
解决办法
3万
查看次数

使用psycopg2/Python DB-API和PostgreSQL进行参数化查询

使psycopg2将参数化查询传递给PostgreSQL的最佳方法是什么?我不想编写自己的escpaing机制或适配器,psycopg2源代码和示例很难在Web浏览器中阅读.

如果我需要切换到类似PyGreSQL或其他python pg适配器的东西,那对我来说没问题.我只想要简单的参数化.

python postgresql psycopg2

43
推荐指数
3
解决办法
4万
查看次数