Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将CSV文件Odo到PostgreSQL数据库中_Python_Database_Postgresql_Csv_Odo - Fatal编程技术网

Python 将CSV文件Odo到PostgreSQL数据库中

Python 将CSV文件Odo到PostgreSQL数据库中,python,database,postgresql,csv,odo,Python,Database,Postgresql,Csv,Odo,我不熟悉PostgreSQL和odo。我创建了以下内容:(我正在Ubuntu上工作) 我创建了超级用户testuser,并使用此用户(角色)创建了postgresql数据库testuser(通过运行psql,然后创建数据库testuser;)。该数据库中有一个名为testtable的表。我使用psycopg2插入此数据库没有问题。但是我遇到了python的odo模块。因为我的目标是将一些_file.csv加载到postgresql数据库中,所以我想我会使用它。用法似乎相当简单 import od

我不熟悉PostgreSQL和
odo
。我创建了以下内容:(我正在Ubuntu上工作)

我创建了超级用户
testuser
,并使用此用户(角色)创建了postgresql数据库
testuser
(通过运行
psql
,然后创建数据库testuser;)。该数据库中有一个名为
testtable
的表。我使用
psycopg2
插入此数据库没有问题。但是我遇到了python的
odo
模块。因为我的目标是将
一些_file.csv
加载到postgresql数据库中,所以我想我会使用它。用法似乎相当简单

import odo
odo.odo('some_file.csv', 'postgresql://testuser:<password>@127.0.0.1:5432/testuser::testtable')
导入odo
odo.odo('some_file.csv','postgresql://testuser:@127.0.0.1:5432/testuser::testtable')
但它不起作用,我得到

NotImplementedError: Unable to parse uri to data resource: postgresql://testuser:<password>@localhost:5432/testuser 
NotImplementedError:无法将uri解析为数据资源:postgresql://testuser:@localhost:5432/testuser
注意:取而代之的是
我有testuser的密码

也许这是显而易见的,我必须实施它。。(如上一段所述),但我认为postgresql是受支持的(因为这里很少提到postgresql,并附有示例)。
我试图在连接URI下查找,但找不到错误。是odo文档。

我使用了
odo
将csv文件插入postgresql,因此它是受支持的。您的连接URI和代码与我的基本相同。你安装了软件包吗?我相信
odo
在后台使用了
sqlalchemy
psycopg2
。我能够在未安装
sqlalchemy
的系统上复制您的错误,安装
sqlalchemy
使我克服了错误。

您是在尝试将CSV文件作为单个数据块插入到结构化表(或多个表)中。您了解RDBMS的基础知识吗?您知道表结构吗?你知道你的CSV数据的结构吗(如果有的话)?是的,我试图在一个步骤中将其插入到一个表中(至少从这个开始,因为我假设这是基本步骤)。我在某个地方读到,
odo
使用COPY命令。我已经创建了这个表,例如“createtabletesttable(id serial PRIMARY KEY,age integer,name varchar)”,测试csv看起来像是“25,John\n34,Petr”,
\n
代表新行。可能就是这样。我没有安装sqlalchemy。。我想我会得到标准的导入丢失错误。我试试看!ThanksI在github上发现了一个具有相同分辨率的类似示例。它与postgres没有特别的关系,但是我认为对于大多数实现的数据库,底层代码都可以追溯到同一个源代码。好的,谢谢。顺便问一下,您不知道从xls->csv转换是否有效吗?我面前没有它,但我想我在
odo(“'my.csv')
中也遇到了类似的错误。我觉得自己很傻,因为odo看起来真的很容易使用,或者它太好了以至于不可能是真的?我在尝试转换xls文件时遇到了类似的
NotImplementedError
,但据我所知,在这种情况下它实际上没有实现,而不仅仅是因为缺少包。