是否有任何关于如何在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运行这些类型的查询的推荐方法是什么?
我正在为我的一个讲座工作项目,我需要下载包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没有支持某些套餐吗?提前致谢!
有人可以解释一下如何在当前数据库中获取表格吗?
我正在使用postgresql-8.4 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)
为任何见解干杯.
如何使用Psycopg2 Python库确定表是否存在?我想要一个真或假的布尔值.
我正在尝试使用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在eclipse中安装psycopg2.
我发现了很多问题:
sudo pip3.4 install psycopg2不起作用,它显示以下消息错误:找不到pg_config可执行文件.
固定:export PATH=/Library/PostgreSQL/9.4/bin/:"$PATH”
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
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
你能帮助我吗?
我正在尝试提高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) … 我在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为接受空密码?
使psycopg2将参数化查询传递给PostgreSQL的最佳方法是什么?我不想编写自己的escpaing机制或适配器,psycopg2源代码和示例很难在Web浏览器中阅读.
如果我需要切换到类似PyGreSQL或其他python pg适配器的东西,那对我来说没问题.我只想要简单的参数化.