From 5e9e464ad0b5117b50fc5cd2a13a4e3501675884 Mon Sep 17 00:00:00 2001 From: powe97 <116031952+powe97@users.noreply.github.com> Date: Sat, 16 Mar 2024 02:17:31 -0400 Subject: [PATCH] Add CSV generator --- transfer_scraper/generate_csv.py | 61 ++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 transfer_scraper/generate_csv.py diff --git a/transfer_scraper/generate_csv.py b/transfer_scraper/generate_csv.py new file mode 100644 index 0000000..5d7ef22 --- /dev/null +++ b/transfer_scraper/generate_csv.py @@ -0,0 +1,61 @@ +import json +import sys +import collections +import csv +import os + + +def main(): + if len(sys.argv) != 3: + print( + f"USAGE: python {sys.argv[0]} ", + file=sys.stderr, + ) + return 1 + with open(sys.argv[1], "r") as transfer_json: + transfer_data = json.load(transfer_json) + + if not os.path.exists(sys.argv[2]): + os.makedirs(sys.argv[2]) + + for course, data in transfer_data.items(): + print(f"Generating {course} transfer guide...", file=sys.stderr) + csv_output = [ + ( + "City", + "State", + "Institution", + "Transfer Course ID", + "Transfer Course Name", + "RPI Course ID", + "RPI Course Name", + "Note", + "Begin", + "End", + "Transfer Catalog", + ) + ] + + for xfer in data: + csv_output.append( + ( + xfer["city"], + xfer["state"], + xfer["institution"], + " + ".join([x["id"] for x in xfer["transfer"]["courses"]]), + " + ".join([x["name"] for x in xfer["transfer"]["courses"]]), + " + ".join([x["id"] for x in xfer["rpi"]["courses"]]), + " + ".join([x["name"] for x in xfer["rpi"]["courses"]]), + xfer["note"], + xfer["begin"], + xfer["end"], + xfer["transfer"]["catalog"], + ) + ) + + with open(f"{sys.argv[2]}/{course} Transfer Guide.csv", "w") as course_csv: + csv.writer(course_csv).writerows(csv_output) + + +if __name__ == "__main__": + exit(main())