Ich versuche, eine Ressource in einer Instanz von CKAN zu aktualisieren. Ich benutze demo.ckan.org um einen Test zu machen.Update-Ressource in CKAN mit Python
Ich bin in der Lage, eine Ressource für ein Dataset mit curl zu erstellen und zu aktualisieren, aber mit Python kann ich dies nicht tun.
Mein Startpunkt ist dieser Link: http://docs.ckan.org/en/latest/maintaining/filestore.html#filestore-api
Dies ist der Code:
import requests
requests.post('http://0.0.0.0:5000/api/action/resource_create',
data={"package_id":"my_dataset"},
headers={"X-CKAN-API-Key": "21a47217-6d7b-49c5-88f9-72ebd5a4d4bb"},
files=[('upload', file('/path/to/file/to/upload.csv'))])
Mein curl Code funktioniert ok, so habe ich versucht, es zu adaptieren:
curl -X POST http://demo.ckan.org/api/3/action/resource_update -d '{"id":"5b75fdf2-df9c-4a4f-bb28-d78ea7bc4e48", "url": "http://82.98.156.2/ckan_api/public_html/restaurantes.geojson", "name": "Better Restaurants", "format":"GEOJSON", "description":"Description of the resource"}' -H "Authorization: 97caad21-8632-4372-98fe-a24cdcaa90dc"
Dies sollte der Code in Python sein:
resource_dict = {
'id': '5b75fdf2-df9c-4a4f-bb28-d78ea7bc4e48',
'name':'REstaurantes con PYTHON',
'url':'http://82.98.156.2/ckan_api/public_html/restaurantes.geojson',
'description':'Description in PYTHON'
}
resource_dict = urllib.quote(json.dumps(resource_dict))
requests.post('http://demo.ckan.org/api/3/action/resource_update',
data=resource_dict,
headers={"Authorization: 97caad21-8632-4372-98fe-a24cdcaa90dc"})
Ich habe diese alte Verbindung gefunden: Create CKAN dataset using CKAN API and Python Requests library
Am Ende es vorschlägt, einige Informationen hinzuzufügen, aber ich kann es zu tun, herauszufinden.
Irgendein Vorschlag ???
Awesome !!, Dank Andersson – davisoski