Зберегти прогрес
МОДУЛЬ 8. МОДУЛІ, ВИНЯТКИ, ФАЙЛИ Й КЛАСИ

Урок 4. CSV і JSON

⌨ Python⏱ ~17 хв✎ 7 завдань з автоперевіркою✓ безкоштовно

Таблиці й структури

Дані зручно зберігати не просто рядками, а таблицями чи структурами. Для цього є два найпоширеніші формати.

CSV — таблиця в тексті

Кожен рядок файлу — рядок таблиці, значення розділені комами:

📄 ВМІСТ ФАЙЛУ
назва,маса,тяга
Січ,2000,300000
Сокіл,1500,200000

Такі файли відкриває Excel чи Google Таблиці. У Python для них є модуль csv:

●●●код Python
import csv

with open("rockets.csv", "w", encoding="utf-8", newline="") as f:
    w = csv.writer(f)
    w.writerow(["назва", "маса"])
    w.writerow(["Січ", 2000])

with open("rockets.csv", encoding="utf-8") as f:
    for row in csv.reader(f):
        print(row)              # ['назва', 'маса'], потім ['Січ', '2000'] — усе рядки!

csv.DictReader(f) дає кожен рядок як словник за заголовками: row["маса"].

JSON — словники й списки у файлі

JSON виглядає майже як словник Python. У ньому зберігають налаштування, рекорди, відповіді сайтів.

●●●код Python
import json

data = {"name": "Січ", "stages": 2, "crew": ["Оля", "Тарас"]}
with open("rocket.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False)

with open("rocket.json", encoding="utf-8") as f:
    loaded = json.load(f)       # знову словник
print(loaded["crew"][0])        # Оля

json.dumps(data, ensure_ascii=False) перетворює дані на рядок JSON (без запису у файл).

⚠ПАСТКА
З CSV усі значення приходять рядками — числа перетворюй через int() чи float(). JSON зберігає числа числами.
Перевір себе: 7 задач з автоперевіркою
Підказки після помилок, розбір кожної задачі, бали й звання. Безкоштовно, можна без реєстрації.
▶ Розв'язувати задачі