밑부터 읽는게 편할지도

import json
from datetime import datetime
def init_json(data, vendor):
data[vendor]["update_date"] = today
data[vendor]["restart"] = ""
data[vendor]["step"] = ""
data[vendor]["repeat_count"] = ""
data[vendor]["the_bill_only"] = ""
with open(json_path, 'w', encoding='utf-8') as f:
json.dump(data, f)
def check(data, vendor):
if data[vendor]["update_date"] == today:
if data[vendor]["restart"] == "yes":
if data[vendor]["the_bill_only"] == "yes":
print("더빌")
# return "the_bill"
else:
print("재시작")
print(data[vendor]["step"])
print(data[vendor]["repeat_count"])
# return data[vendor]["step"], data[vendor]["repeat_count"]
else:
pass
else:
print("초기화")
init_json(data, vendor)
def vendor_done(data, vendor):
data[vendor]["the_bill_only"] = "yes"
with open(json_path, 'w', encoding='utf-8') as f:
json.dump(data, f)
def write(data, vendor, step, rp_idx):
data[vendor]["update_date"] = today
data[vendor]["restart"] = "yes"
data[vendor]["repeat_count"] = rp_idx
data[vendor]["step"] = step
with open(json_path, 'w', encoding='utf-8') as f:
json.dump(data, f)
def main(func, *args, **kwargs):
global today
today = datetime.today().strftime('%Y-%m-%d')
global json_path
# json_path = r''
json_path = r''
with open(json_path, 'r', encoding='utf-8') as f:
data = json.load(f)
return globals()[func](data, *args, **kwargs)
if __name__ == '__main__':
main()

다른사람이 짠 코든데
main 함수에서 today랑 json_path를 전역변수선언해 다른 함수들이 불러올 수 있게 한거같은데
다른 함수들마다 죄다 today랑 jsonpath 써주기 싫으니깐 ㅇㅇ
그밖의
init_json
check
vendor_done
write
이 함수들 보면 json파일을 write하는 기능임. 이것들은 볼필요 없고
알고싶은건
main 함수가 입력받은 인수들을 전역변수로 리턴하는것까진 이해했는데 근데 이게
인수(init_json , check , vendor_done , write)중 하나를 입력받으면 그 함수를 실행시키더라고
인수는 무조건 저중 하나가 들어가고
문제는 with open ~~ as f 여기부터 몰?루겠음
저부분 동작원리를 모르겠음
결과 자체는 입력받은 인수와 같은 이름의 함수를 실행시키는건데