import requests import pandas as pd from pathlib import Path import Apikeys import os basefile = "/Users/normrasmussen/Downloads/Mizuno July 2023 Completions.csv" api_key = Apikeys.mizuno uuid_url = "https://api.northpass.com/v2/people?filter[email][eq]=" prop_url = "https://api.northpass.com/v2/properties/people/" headers = { "accept": "*/*", "x-api-key": api_key, "content-type": "application/json", } def load_file(basefile): dict_list = [] row_dict = {} basefile = Path(basefile) completions = pd.read_csv(basefile) try: if os.path.isfile(basefile): print(f"File found! Importing {basefile}") for email in completions.itertuples(): row_num = email[0] row_dict = {"row_num": row_num} email = email[3] url = uuid_url + f"{email}" response = requests.get(url, headers=headers) if response.status_code == 200: response = response.json() uuid = response["data"][0]["id"] url2 = prop_url + f"{uuid}" response = requests.get(url2, headers=headers) data = response.json() pgaid = (data["data"] ["attributes"]["properties"]["account_number"]) row_dict["pgaid"] = pgaid dict_list.append(row_dict) print("No errors! Passing along the dictionary!") except KeyError as e: print(e) finally: for info in dict_list: row = info["row_num"] pid = info["pgaid"] completions.loc[completions.index[row], "PGA ID"] = pid completions = completions[completions["PGA ID"] != "0"] # completions = completions.iloc[:, 0:] print(completions) completions.to_csv( "/Users/normrasmussen/Downloads/MizunoCompletions_with_PGAIDs.csv", index=False, ) if __name__ == "__main__": load_file(basefile)