草庐IT

psycopg2

全部标签

Python-PostgreSQL psycopg2 接口(interface) --> executemany

我目前正在分析维基百科转储文件;我正在使用python从中提取一堆数据并将其保存到PostgreSQL数据库中。因为这个文件很大(18GB),所以我总是试图让事情变得更快。为了与PostgreSQL交互,我正在使用psycopg2,但这个模块似乎模仿了许多其他此类DBAPI。无论如何,我有一个关于cursor.executemany(command,values);的问题;在我看来,每1000个值执行一次executemany比为这500万个值中的每一个调用cursor.execute(command%value)更好(请确认或纠正我!)。但是,你看,我正在使用executemany将

python - 为什么带有 SQL 查询参数的 psycopg2 cursor.execute() 会导致语法错误?

在Python中为psycopg2中的execute()指定参数时,像这样:cursor.execute('SELECT*FROM%s',("my_table",))我收到这个错误:psycopg2.ProgrammingError:syntaxerroratornear"'my_table'"LINE1:SELECT*FROM'my_table'我做错了什么?看起来psycopg2正在向查询添加单引号,而这些单引号导致了语法错误。如果我不使用参数,它会正常工作:cursor.execute('SELECT*FROMmy_table') 最佳答案

python - Psycopg2 不喜欢以小写字母开头的表名

我在WindowsXP下运行ActiveState的ActivePython2.6.5.12和PostgreSQL9.0Beta1。如果我创建一个首字母大写的表(即Books),当我运行select语句时,psycopg2返回“编程错误:关系“books”不存在”错误消息:execute("SELECT*来自书籍")。如果我运行:execute("SELECT*FROMbooks"),也会返回同样的错误。但是,如果我将表格更改为小写的名字(即书籍),则上述任一语句都有效。表名是否应该有一个小写的名字?这是设置、功能还是错误?我是否遗漏了一些明显的东西? 最佳

python - 带有 psycopg2 插件的 Django

我一直在阅读DjangoBook,到目前为止它很棒,除非有什么地方不能正常工作。我已经尝试了两天来安装psycogp2插件,但没有成功。我导航到解压缩的目录并运行setup.pyinstall,它返回“您必须有postgresqldev用于构建服务器端扩展或libpq-dev用于客户端。”我不知道这意味着什么,Google返回的结果中包含很多我不太理解的术语。我已经尝试学习django大约一个星期了,再加上linux,所以任何帮助都会很棒。谢谢顺便说一句,我已经从安装程序包中安装了postgresql和pgadminIII。我也试过sudoapt-getpost....并且发生了一些事

python - Psycopg2 中的 `TypeError: argument 2 must be a connection, cursor or None`

我设置了一个heroku管道,并且刚刚为其启用了审查应用程序。它使用与我的暂存和生产应用程序相同的代码库、相同的设置文件和所有内容。当审核应用启动时,它可以连接到创建的数据库并运行迁移。当我尝试连接到浏览器中的应用程序时,我得到了`TypeError:argument2mustbeaconnection,cursororNone`in`psycopg2/_json.py,register_json:139`栈顶是:`django.contrib.sites.models._get_site_by_id`.我在这篇文章的底部附上了错误帧的Opbeat输出。Settingsfile已链接。

python - psycopg2:使用 copy_from 编写 JSON 对象。如何格式化json字符串?

我在postgresql中有一个表,其中有一列类型为JSON。我正在尝试将数据附加到表中。cursor.execute("""INSERTINTOmy_tableVALUES(%s);""",(json.dumps(myobject))一直在努力工作。但现在我需要真正提高吞吐量。这是不起作用的代码:importStringIO,psycopg2,jsonbuffer=StringIO.StringIO(json.dumps(myobject))cursor.copy_from(buffer,'my_table')connection.commit()写入缓冲区的json与copy_fr

python - 在 psycopg2 中构建动态更新查询

我必须为postgresql构建一个动态更新查询。它是动态的,因为我必须事先确定要更新哪些列。给定一个示例表:createtablefoo(idint,aint,bint,cint)然后我将以编程方式构建“set”子句_set={}_set['a']=10_set['c']=NULL之后我必须构建更新查询。在这里我被困住了。我必须构造这个sql更新命令:updatefooseta=10,b=NULLwhereid=1如何使用psycopg2参数化命令执行此操作?(即,如果它不为空则循环遍历dict并构建set子句)?更新在我sleep的时候,我自己找到了解决方案。它是动态的,正是我想要

python - Fedora 上的 psycopg2

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我正在尝试在Fedora上使用pip安装psycopg2。我收到消息:“找不到pg_config可执行文件。”在ubuntu中,这个问题可以通过安装libpq-dev和python-dev包来解决。Fedora中没有明确的类似解决方案。

python - 将 psycopg2 DictRow 查询转换为 Pandas 数据框

我想转换一个psycopg2DictRow查询pandas数据框,但pandas一直提示:curs=conn.cursor(cursor_factory=psycopg2.extras.DictCursor)curs.execute("SELECT*FROMmytable")data=curs.fetchall()printtype(data)printpd.DataFrame(list(data))但是,尽管我专门传递了一个list,但我总是报错???TypeError:Expectedlist,gotDictRow如果我执行pd.DataFrame(data)结果是一样的,有人可以

python - ubuntu 升级到 17.10(从 17.04 开始)时出现 psycopg2 导入错误

在我将操作系统升级到Ubuntu17.10之前,一切都运行良好。现在我的Django项目不会运行(pythonmanage.pyrunserver)因为psycopg2不会导入。psycopg2已经安装了pip(那里没有任何改变)。确切地说,这是错误:lib/python3.5/site-packages/psycopg2/.libs/libresolv-2-c4c53def.5.so:symbol__res_maybe_init,versionGLIBC_PRIVATEnotdefinedinfilelibc.so.6withlinktimereference