Lekcja 8 - zad dom (.json)

Lekcja 8 - zad dom (.json)
Photo by Nik / Unsplash

Utworzyłam plik:

import json

ksiazka_tele_dopisywanie={
"Szymon" : "777888999",
"Alfred" : "444555666",
}

with open ("ksiazka_tele_dopisywanie.json", "w") as plik:
    json.dump(ksiazka_tele_dopisywanie, plik, indent=2)

który utworzył mi plik ksiazka_tele_dopisywanie.json. Potem można używać "1" aby dodać kolejne wpisy. Na końcu za pomocą "7" tworzę plik ksiazka_tele_json.json zawierający wszystkie dopisane wpisy.

from os import system, name
import json

def czysc_ekran():
    if name == "nt":
        _ = system("cls")
    else:
        _ = system("clear")

ksiazka_tele_json = {}

czysc_ekran()

while True:

    operacja = input(
        "Wybierz operację do wykonania:\n\
                  1 - dopisanie pozycji do książki\n\
                  2 - aktualizacja pozycji książki\n\
                  3 - usunięcie pozycji książki\n\
                  4 - wydruk imion z książki\n\
                  5 - wydruk całej książki telefonicznej\n\
                  6 - wczytanie zewnętrznej książki telefonicznej\n\
                  7 - zapisanie całej książki telefonicznej do pliku .json\n\
                  8 - koniec programu\nPodaj kod operacji = "
    )

    if not operacja:
        break

    if operacja == "1":
        czysc_ekran()
        print("Wybrano 1")
        imie = input("Wpisz imię i nazwisko: ")
        while True:
            nr_tel = input("Wpisz nr tel.: ")
            if len(nr_tel) == 9:
                ksiazka_tele_json[imie] = nr_tel
                print("Nr tel został dodany")
                break
            else:
                print("nr tel musi skladac sie z 9 cyfr")        
        
    elif operacja == "2":
        czysc_ekran()
        print("Wybrano 2")
        imie = input("Wpisz imię i nazwisko: ")
        if imie in ksiazka_tele_json.keys():
            wpis=input("Nowe dane kontaktowe: ")
            ksiazka_tele_json[imie]=wpis
        
        ksiazka_tele_json[imie] = nr_tel

    elif operacja == "3":
        czysc_ekran()
        print("Wybrano 3")
        imie = input("Wpisz imię i nazwisko do usunięcia wpisu: ")
        if imie in ksiazka_tele_json.keys():
            ksiazka_tele_json.pop(imie)
            print("Wpis został usunięty")
        else:
            print("Nie ma takiego wpisu w ksiazce")

    elif operacja == "4":
        czysc_ekran()
        print("Wybrano 4")
        print(f"W ksiazce znajduja sie imiona: ")
        for imie in ksiazka_tele_json.keys():
            # może być też samo ksiazka_tele() bo domyślnie przemieszczamy się po kluczach
            print(imie)

    elif operacja == "5":
        czysc_ekran()
        print("Wybrano 5")
        print(f"W ksiazce znajduja sie wpisy: ")
        for imie, nr_tel in ksiazka_tele_json.items():
            print (f"Imie: {imie}, nr tel.: {nr_tel}")

    elif operacja == "6":
        czysc_ekran()
        print("Wybrano 6")
        with open ("ksiazka_tele_dopisywanie.json") as plik:
            ksiazka_tele_json=json.load(plik)
            print(ksiazka_tele_json)       

    elif operacja == "7":
        czysc_ekran()
        print("Wybrano 7")

        with open ("ksiazka_tele_json.json", "w") as plik:
            json.dump(ksiazka_tele_json, plik, indent=2)
    
    elif operacja == "8":
        break

    else:
        print("\nPodano błędny kod operacji")

print("\nKoniec programu")