【发布时间】:2016-03-26 19:37:56
【问题描述】:
我是 PostgreSQL 和 odo 的新手。我创建了以下内容:(我正在使用 Ubuntu)。
我创建了 superuser testuser 并使用此用户(角色)创建了 postgresql 数据库 testuser(通过运行 psql 然后创建数据库 testuser;)。在这个数据库中有一个名为testtable 的表。我用psycopg2 插入这个数据库没有任何问题。但是我遇到了用于 python 的odo 模块。因为我的目标是将some_file.csv 加载到postgresql 数据库中,所以我想我会使用它。用法似乎相当简单
import odo
odo.odo('some_file.csv', 'postgresql://testuser:<password>@127.0.0.1:5432/testuser::testtable')
但它不起作用,我得到了
NotImplementedError: Unable to parse uri to data resource: postgresql://testuser:<password>@localhost:5432/testuser
注意:改为<password>我有testuser的密码。
也许它是显而易见的,我必须实现它..(如最后一段here),但我认为postgresql是受支持的(因为postgresql在那里被提到过几次,并附有示例)。 我尝试在连接 URI 下查看 here,但找不到错误。而here 是 odo 文档。
【问题讨论】:
-
您是尝试将 CSV 文件作为单个数据块插入还是插入到结构化表(或多个表)中。了解RDBMS的基础知识,了解表结构吗?您知道 CSV 数据的结构(如果有的话)吗?
-
是的,我正在尝试将它插入到单个表中的 single 步骤中(至少从那开始,因为我认为这是基本步骤)。我在某处读到,
odo为此使用了 COPY 命令。我已经创建了表,例如像这样“CREATE TABLE testtable(id serial PRIMARY KEY, age integer, name varchar);”测试 csv 看起来像这样 "25, John\n34, Petr",\n代表新行。
标签: python database postgresql csv odo