55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
|
|
import requests
|
||
|
|
import pandas as pd
|
||
|
|
from pathlib import Path
|
||
|
|
import os
|
||
|
|
|
||
|
|
basefile = "/Users/normrasmussen/Downloads/MizunoCompletions_with_PGAIDs.csv"
|
||
|
|
api_key = "stXNF84HWL8aCGeRjHEo2rJ1U"
|
||
|
|
uuid_url = "https://api.northpass.com/v2/people?filter[email][eq]="
|
||
|
|
group_url = "https://api.northpass.com/v2/groups/"
|
||
|
|
headers = {
|
||
|
|
"accept": "*/*",
|
||
|
|
"x-api-key": api_key,
|
||
|
|
"content-type": "application/json",
|
||
|
|
}
|
||
|
|
|
||
|
|
def load_file(basefile):
|
||
|
|
row_dict = {}
|
||
|
|
dict_list = []
|
||
|
|
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()
|
||
|
|
gid = response["data"][0]["relationships"]["groups"]["data"][0]["id"]
|
||
|
|
url2 = group_url + f"{gid}"
|
||
|
|
response = requests.get(url2, headers=headers)
|
||
|
|
data = response.json()
|
||
|
|
group_name = data["data"]["attributes"]["name"]
|
||
|
|
row_dict["group"] = group_name
|
||
|
|
dict_list.append(row_dict)
|
||
|
|
except TypeError as e:
|
||
|
|
pass
|
||
|
|
finally:
|
||
|
|
for info in dict_list:
|
||
|
|
row = info['row_num']
|
||
|
|
group = info['group']
|
||
|
|
completions.loc[completions.index[row], "Group Name"] = group
|
||
|
|
print(completions)
|
||
|
|
completions.to_csv(
|
||
|
|
"/Users/normrasmussen/Downloads/MizunoCompletions_with_PGAIDs.csv",
|
||
|
|
index=False
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
load_file(basefile)
|