Jan-29-2020, 10:51 PM
(This post was last modified: Jan-29-2020, 11:39 PM by chetansaip99.)
Below python scripts gives response in json format. How can alter code to export response in csv format instead of json?
Thanks micseydel
import requests import datetime import time import json base_url = "https://api.people.ai/pull/v1/export/activities" def getAccessToken(client_id, client_secret): response = requests.post("https://api.people.ai/auth/v1/tokens", data={"client_id": client_id, "client_secret": client_secret}) if response.status_code != 200: raise RuntimeError(response.text) token_data = response.json() access_token = token_data["access_token"] return access_token def get(url): response = requests.get(url if url.startswith("https") else base_url + url, headers = { "Authorization": "Bearer " + access_token, }) if response.status_code != 200: raise RuntimeError(response.text) data = response.json() return data def post(url, data): response = requests.post(url if url.startswith("https") else base_url + url, headers = { "Authorization": "Bearer " + access_token, 'Content-Type': 'application/json' }, data=json.dumps(data)) if response.status_code != 200: raise RuntimeError(response.text) data = response.json() return data def get_state(id): return get("/jobs/{}".format(id))["state"] def pretty_print(data): print(json.dumps(data, indent=4)) if __name__ == '__main__': client_id = '#######' client_secret = '########' access_token = getAccessToken(client_id, client_secret) job = post("/jobs", { "start_date": "2019-10-01", "end_date": "2019-10-01", "activity_type": "Email", # Email, Meeting, Call, All "export_type": "Snapshot", # Delta or Snapshot "output_format": "JSONLines", # JSONLines or JSON }) print('Job started...') pretty_print(job) job_id = job['job_id'] state = get_state(job_id) print('Waiting for job {}...'.format(job_id)) while state == "Running" or state == 'Queued': state = get_state(job_id) print(str(datetime.datetime.now()) + ": State: " + state) time.sleep(20) if get_state(job_id) == 'Completed': print("Job summary...") pretty_print(get("/jobs/{}".format(job_id))) print("Fetching data...") response = requests.get(base_url + "/jobs/{}/data".format(job_id), headers = { "Authorization": "Bearer " + access_token, }) data = response.text.split('\n') for i in range(len(data)-1): pretty_print(json.loads(data[i]))
Thanks micseydel