CKAN提供了^{
我可以用它来下载元数据、创建资源等,但我不能在一个API调用中创建包并将资源上载到它。(包也称为数据集。)
在内部,ckanapi
scans all keys moving any file-like parameters into a separate ^{
这是我能得到的最接近的结果,但是CKAN返回一个http500错误(复制自this guide to ^{
with ckanapi.RemoteCKAN('http://myckan.example.com', apikey='real-key', user_agent=ua, username='joe', password='pwd') as ckan:
ckan.action.package_create(name='joe_data',
resources=('report.xls',
open('/path/to/file.xlsx', 'rb'),
'application/vnd.ms-excel',
{'Expires': '0'}))
我也尝试过resources=open('path/file')
,files=open('file')
,更短或更长的元组,但是得到同样的500错误。在
requests
文档说明:
我不能传递ckanapi
resources={'filename': open('file')}
,因为ckanapi
没有检测到该文件,尝试将其作为普通参数传递给requests
,但失败了(“BufferedReader不是JSON可序列化的”,因为它试图将文件设为POST
参数)。如果我试图传递一个文件列表,我也会得到同样的结果。但是the API is able to在一个调用中创建一个包并添加多个资源。在
那么如何使用一个ckanapi
调用创建一个包和多个资源?在
我对此很好奇,我想我应该做些东西来测试一下。不幸的是,我还没有玩过你提到的CLI。但我希望这能帮助你和其他人在这件事上跌跌撞撞。在
我不肯定,但我猜你的资源字典格式不正确。资源需要是字典列表。在
这里有一个ruby脚本来执行单个api调用插入(我现在的首选语言):
这里有一个简单的python脚本来做同样的事情(感谢您为我修改的模板CKAN docs)
^{pr2}$相关问题 更多 >
编程相关推荐