Jest to warunek konieczny dla uzyskania pozytywnej oceny ze sprawdzianu.
Zabronione jest korzystanie z narzędzi do automatycznej generacji kodu, takich jak ChatGPT, Github Copilot, itp.
Wymagania funkcjonalne
W pliku json_printer.py napisz funkcję printer(obj: JSON) -> str, która konwertuje słownik na napis w formacie JSON.
Zakładamy dowolną strukturę parametru wejściowego, które konwertujemy na napis zgodnie z następującą tabelą:
Wartość Napis
None null
true True
false False
int (np. 1) 1
float (np. 1.0) 1.0
str (np. 'abc') "abc"
list (np. [1, 'A', 3]) [1, "A", 3]
dict (np. {'a': 1, 1: 'B'}) {"a": 1, "1": "B"}
Hint: kluczem słownika JSON jest zawsze napis, więc klucz 1 typu int zostanie zapisany jako "1".
Dodatkowo, dodaj do funkcji dodatkowy parametr opcjonalny indent typu int, który określa ilość spacji wcięcia dla konkretnego poziomu zagnieżdżenia struktury danych. Gdy parametr nie jest podany, napis tworzymy w jednej linii. Gdy parametr jest podany, wcięcia mają być dodane przed każdym elementem listy lub słownika.
Domyślnym separatorem kluczy i wartości dla słowników jest : (dwukropek i spacja), natomiast wartości w liście: , (przecinek i spacja), chyba że warunek wcięć stanowi inaczej.
Przykłady (kropki na początku linii w przykładach symbolizują spacje):
printer({'a': 1, 'b': 'B'})
powinno zwrócić:
'{"a": 1, "b": "B"}'
printer({'a': 1, 'b': 'B'}, indent=2)
powinno zwrócić:
'{
.."a": 1,
.."b": "B"
}'
printer({'a': 1, 'b': 'B', 'c': [1, 2, 3]}, indent=2)
powinno zwrócić:
'{
.."a": 1,
.."b": "B",
.."c": [
....1,
....2,
....3
..]
}'
mam sprawdzian prosze o szybka pomoc