Sandata templates. API scripts for a few customers.
This commit is contained in:
@ -4,7 +4,7 @@ from pathlib import Path
|
||||
import Apikeys
|
||||
import os
|
||||
|
||||
basefile = "/Users/normrasmussen/Downloads/mizuno-april-completions.csv"
|
||||
basefile = "/Users/normrasmussen/Downloads/mizuno-may-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/"
|
||||
@ -26,7 +26,8 @@ def load_file(basefile):
|
||||
for email in completions.itertuples():
|
||||
row_num = email[0]
|
||||
row_dict = {"row_num": row_num}
|
||||
email = email[2]
|
||||
email = email[3]
|
||||
print(email)
|
||||
url = uuid_url + f"{email}"
|
||||
response = requests.get(url, headers=headers)
|
||||
if response.status_code == 200:
|
||||
@ -50,7 +51,7 @@ def load_file(basefile):
|
||||
completions = completions[completions["userid"] != "0"]
|
||||
# completions = completions.iloc[:, 0:]
|
||||
completions.to_csv(
|
||||
"/Users/normrasmussen/Downloads/Mizuno-April2024-with-PGAID.csv",
|
||||
"/Users/normrasmussen/Downloads/Mizuno-May2024-with-PGAID.csv",
|
||||
index=False,
|
||||
)
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ def get_courses():
|
||||
pp.pprint(list_of_ids)
|
||||
# print(len(list_of_ids))
|
||||
with open(
|
||||
"/Users/normrasmussen/Downloads/Walmart-Live-Courses.csv", "a+", newline='\n'
|
||||
"/Users/normrasmussen/Downloads/Anthology-Courses.csv", "a+", newline='\n'
|
||||
) as csvfile:
|
||||
for group in list_of_ids:
|
||||
for key, value in group.items():
|
||||
|
||||
@ -80,28 +80,35 @@ def group_ids():
|
||||
def get_courses(ids):
|
||||
df = pd.DataFrame()
|
||||
courses = []
|
||||
error_groups = []
|
||||
for tupe in ids:
|
||||
id = tupe[0]
|
||||
group = tupe[1]
|
||||
print(f"Get Courses Function. Group:{ group } and id: {id}")
|
||||
for count in range(1, 10):
|
||||
print(f"Get Courses For Loop. Group:{ group } and count: {count}")
|
||||
url2 = f"groups/{id}/courses?limit=100&page={count}"
|
||||
courseurl = f"{BASEURL}{url2}"
|
||||
coursereq = requests.get(courseurl, headers=HEADERS)
|
||||
coursedata = coursereq.json()
|
||||
print(coursedata)
|
||||
nextlink = coursedata["links"]
|
||||
for cdata in coursedata["included"]:
|
||||
# if cdata["attributes"]["status"] == "archived":
|
||||
coursedict = parse_data(cdata, group)
|
||||
print(f"Coursedict --> {coursedict} for page {count}")
|
||||
if coursedict is not None:
|
||||
courses.append(coursedict)
|
||||
if "next" not in nextlink:
|
||||
break
|
||||
try:
|
||||
coursedata = coursereq.json()
|
||||
nextlink = coursedata["links"]
|
||||
for cdata in coursedata["included"]:
|
||||
# if cdata["attributes"]["status"] == "archived":
|
||||
coursedict = parse_data(cdata, group)
|
||||
print(f"Coursedict --> {coursedict} for page {count}")
|
||||
if coursedict is not None:
|
||||
courses.append(coursedict)
|
||||
except JSONDecodeError as e:
|
||||
print("JSON Error! {e}")
|
||||
error_groups.append(group)
|
||||
|
||||
pddata = df.from_records(courses)
|
||||
pddata.to_csv("~/Downloads/ARCHIVED-Anthology_Course_IDs_Names.csv")
|
||||
finally:
|
||||
if "next" not in nextlink:
|
||||
break
|
||||
|
||||
pddata = df.from_records(courses)
|
||||
pddata.to_csv("/Users/normrasmussen/Downloads/ALL-Anthology_Course_IDs_Names.csv")
|
||||
print(error_groups)
|
||||
|
||||
|
||||
def parse_data(cdata, group):
|
||||
|
||||
Reference in New Issue
Block a user