JSON
JSON — это текст. Словарь хранит имена и значения внутри программы, но пока не является JSON. dumps превращает словарь в одну строку текста. На этой странице файл не открывается и путь не строится.
import json
lamp = {"color": "blue", "watts": 7}
text = json.dumps(lamp)
print(text)
На экране появится {"color": "blue", "watts": 7}. color и blue стоят в двойных кавычках. watts — число, поэтому у 7 кавычек нет. Пробел после двоеточия и пробел после запятой тоже входят в этот текст. text — строка. Файл не создаётся. В программе нет ни open, ни Path.
import json
text = '{"color": "blue", "watts": 7}'
lamp = json.loads(text)
print(lamp["color"])
print(lamp["watts"])
На экране сначала blue, потом 7. loads читает текст JSON и заново собирает словарь. Значение lamp["color"] — слово blue, уже без кавычек. lamp["watts"] — число 7, а не слово 7. Файл не читается: текст уже лежал в переменной.
📊 dumps и loads
| Вызов | С чего вы начинаете | Что получаете |
|---|---|---|
| json.dumps | словарь | одна строка текста JSON, файл при этом не записывается |
| json.loads | текст JSON | словарь, файл при этом не читается |
Если текст — не настоящий JSON, loads останавливается. Эта остановка называется JSONDecodeError. {color: blue} — не JSON: у имён и у blue нет двойных кавычек. Этой строки нет в программах на странице. None вместо неё не подставляется, и программа не идёт дальше.
Следующая страница — таблица CSV. Здесь словарь только превращается в текст, а текст — обратно в словарь.
Текст, потом снова словарь
dumps показывает {"color": "blue", "watts": 7}. Затем loads показывает blue и 7. 7 — число. Неверная строка останавливается с JSONDecodeError. Файл не записывается и не читается. Следующая страница — таблица CSV.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху