首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >直接在Python中重新创建Postgres副本?

直接在Python中重新创建Postgres副本?
EN

Stack Overflow用户
提问于 2009-12-09 05:30:04
回答 1查看 8.6K关注 0票数 18

我有一个数据块,目前是一个n元组列表,但格式非常灵活,我想将其附加到Postgres表中-在本例中,每个n元组对应于DB中的一行。

到目前为止,我一直在做的是将所有这些内容写入CSV文件,然后使用postgres的COPY将所有这些内容批量加载到数据库中。这是可行的,但并不是最优的,我更希望能够直接从python中完成这一切。有没有一种方法可以在python中复制Postgres中的复制类型批量加载?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-09 05:34:56

如果您使用的是psycopg2驱动程序,游标提供了一个copy_tocopy_from函数,可以从任何类似文件的对象(包括StringIO缓冲区)中读取数据。

psycopg2 source distribution附带的文件examples/copy_from.pyexamples/copy_to.py中有一些示例。

以下摘录来自copy_from.py示例:

代码语言:javascript
复制
conn = psycopg2.connect(DSN)
curs = conn.cursor()
curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")

# anything can be used as a file if it has .read() and .readline() methods
data = StringIO.StringIO()
data.write('\n'.join(['Tom\tJenkins\t37',
                  'Madonna\t\N\t45',
                  'Federico\tDi Gregorio\t\N']))
data.seek(0)

curs.copy_from(data, 'test_copy')
票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1869973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档