Export to csv instead of json - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Export to csv instead of json (/thread-24073.html) |
Export to csv instead of json - chetansaip99 - Jan-29-2020 Below python scripts gives response in json format. How can alter code to export response in csv format instead of json? 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 |