使用ckanapi(Python)将文件上载到CKAN

2024-05-23 20:35:36 发布

您现在位置:Python中文网/ 问答频道 /正文

import ckanapi

try:

        ckan = ckanapi.RemoteCKAN(serverurl,
            apikey='myapikeyhere',
            user_agent='useragenthere')

    res = ckan.action.resource_create(
        package_id='2ad3c9de-502c-403a-8b03-bfc619697ff2',
        #url='url',
        #revision_id='revid',
        description='my first upload with CKANAPI',
        upload=open('./upload.csv')
    )

except Exception as e:
        raise Exception(str(e.error_dict))

它失败的原因是:

Field errors: {u'url': [u'Missing value'], u'__type': u'Validation Error'}

他们将url作为GitHub讨论中的必需属性: https://github.com/ckan/ckan/pull/1641

那么url属性的期望值是多少? 如果它期望本地文件的url,则不托管它。 我不能在CKAN上提供文件的url,因为resourceid还没有创建。在

PS:当为url属性传递任意值时,上传成功。 要求url属性是没有意义的。有人能解释吗?在


Tags: 文件importidurl属性exceptionckanupload
1条回答
网友
1楼 · 发布于 2024-05-23 20:35:36

在我看来,这是CKAN的一个缺陷。我在https://github.com/ckan/ckan/issues/2769上创建了一个问题来跟踪它。我还在ckanapi上编写了一个pull请求,将这个bug抽象到https://github.com/ckan/ckanapi/pull/74。在

同时,作为一种解决方法,您可以将url设置为空字符串。在

相关问题 更多 >