forked from opendatalu/api_examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupload_resource.py
More file actions
30 lines (24 loc) · 996 Bytes
/
upload_resource.py
File metadata and controls
30 lines (24 loc) · 996 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import requests
import json
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('api_key', help="API key to use", type=str)
parser.add_argument('dataset_id', type=str)
parser.add_argument('resource_id', type=str)
parser.add_argument('resource_title', type=str)
parser.add_argument('filename', help="file to upload")
args = parser.parse_args()
api_key = args.api_key
dataset_id = args.dataset_id
resource_id = args.resource_id
resource_title = args.resource_title
file_name = args.filename
files = {'file': (args.filename, open(args.filename, 'rb'), 'text/plain')}
headers = {'X-API-KEY': api_key}
url = 'https://data.public.lu/api/1/datasets/%s/resources/%s/upload/' % (dataset_id, resource_id)
r = requests.post(url, files=files, headers=headers)
resource = json.loads(r.text)
resource['title'] = resource_title
url = 'https://data.public.lu/api/1/datasets/%s/resources/%s/' % (dataset_id, resource_id)
r = requests.put(url, json=resource, headers=headers)
print r.text