-
Notifications
You must be signed in to change notification settings - Fork 0
/
API_response_to_csv.py
43 lines (31 loc) · 1.26 KB
/
API_response_to_csv.py
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
31
32
33
34
35
36
37
38
39
40
41
42
43
# python 3.7 64 bit
# dit script maakt losse CSV bestanden van API responses
import requests, json
from pandas import DataFrame
import pandas as pd
url_short = input("Geef basisadres van de API: ")
urlpart = input( "Geef datagroep uit API: " )
headers = {"Accept": "application/json"}
key=input("geef API key: ")
user = input("geef userid: ")
csv_path = input("geef outputdirectory CVS bestand: ")
fieldname = input("geef naam van field: ")
try:
url = url_short + urlpart + "/"
print(url)
res_file = csv_path + urlpart + ".csv"
f = open(res_file, "a")
resp = requests.get(url, auth=(user, key), headers = headers)
if resp.status_code == 200:
# returns a dictionary with a single key 'data' and a list of dictionaries as value of that key.
jsondata = json.loads(resp.content.decode('utf-8'))
df = pd.DataFrame(data=jsondata['data'],columns=jsondata['data'][0].keys())
df[fieldname].to_csv(path_or_buf = res_file, mode='a', header = False, index = False)
else:
print ("HTTP response code for " + url + " is: " + str(resp.status_code))
f.close()
except Exception as e:
if hasattr(e, 'message'):
print(e.message)
else:
print(e)