Książka kontaktowa z możliwością zapisania w pliku JSON

Książka kontaktowa z możliwością zapisania w pliku JSON
Photo by Alexander Andrews / Unsplash
import json
import os

if os.path.exists("ksiazka_kontaktowa.json"):
    with open("ksiazka_kontaktowa.json", "r", encoding="utf8") as plik_json:
                kontakty = json.load(plik_json)
else:
     kontakt = {}

#{"Ada" : "[email protected]", "Bob" : "[email protected]"}

while True:
    print("Wybierz operację do wykonania:")
    print("1 - dopisanie pozycji do książki")
    print("2 - aktualizacja pozycji książki")
    print("3 - usunięcie pozycji książki")
    print("4 - wydruk imion z książki")
    print("5 - wydruk całej książki z kontaktami")
    print("6 - koniec")
    print("7 - zapisz kontakty")
    print("8 - wczytaj dane")

    wybor_menu = input("Podaj kod operacji: ")

    if not wybor_menu:
        break

    if wybor_menu == "1":
        imie = input("Podaj imię / ksywkę osoby do dopisania: ")
        if imie not in kontakty:
            kontakt = input("Podaj dane kontaktowe: ")
            kontakty[imie] = kontakt
            print("Dodano nowy kontakt do książki")
        else:
             print("""
                   Posiadasz już kontakt do tej osoby.
                   Podaj ponownie kod operacji.
                   """)

    elif wybor_menu == "2":
        imie = input("Podaj imię osoby do zaktualizowania: ")
        if imie in kontakty:
            # poprawione_imie = input("Podaj nowe imię: ")
            kontakt = input("Wpisz poprawione dane kontaktowe: ")
            kontakty[imie] = kontakt
        else:
             print("Nie ma kontaktu o takiej nazwie")

    elif wybor_menu == "3":
        usuwane_imie = input("Podaj imię, które chcesz usunąć: ")
        if usuwane_imie in kontakty:
            kontakty.pop(usuwane_imie)
            print("Kontakt został usunięty")
        else:
             print("Nie ma kontaktu o takiej nazwie")

    elif wybor_menu == "4":
        for imie in kontakty.items():
            print(imie)

    elif wybor_menu == "5":
        for imie, kontakt in kontakty.items():
             print(f"{imie}: {kontakt}")

    elif wybor_menu == "6":
          while True:
            pytanie = input("Czy chcesz zapisać zmiany? \n Tak - T, Nie - N: ").strip().upper()
            if pytanie == "N":
                print("Zmiany nie zostały zapisane.")
                break
            
            elif pytanie == "T":
                with open("ksiazka_kontaktowa.json", "w", encoding="utf-8") as plik_json:
                    json.dump(
                        kontakty, 
                        plik_json, 
                        ensure_ascii=False,
                        sort_keys=True,
                        indent=4)
                print("Zmiany zostały zapisane.")
                break
            else:
                print("Nieprawidłowa odpowiedź. Wpisz T albo N.")
    

    elif wybor_menu == "7":
        if os.path.exists("ksiazka_kontaktowa.json"):
             print("Twoja ksiazka kontaktowa zostanie nadpisana")

        with open("ksiazka_kontaktowa.json", "w", encoding="utf8") as plik_json:
            json.dump(
                kontakty,
                plik_json,
                indent=4,
                sort_keys=True,
                ensure_ascii=False,
                )
    
        print("Zapisano zmiany")
            
    elif wybor_menu == "8":
        with open("ksiazka_kontaktowa.json", "r", encoding="utf8") as plik_json:
            kontakty = json.load(plik_json)
            print(kontakty)