# Это меня давно смущало
Если вы новичок в JSON, JSON означает нотацию объектов JavaScript.
string = '{"apple": 4, "orange": 5, "pear": 6}'
^ Простая строка JSON (фактическая строка)
Когда разные приложения (с разными техническими стеками) взаимодействуют друг с другом, есть вероятность, что они используют строки JSON. Например, они отправляют строки JSON друг другу, и у каждого есть свой способ кодирования и декодирования этих строк JSON.
1) json.loads — строка JSON для объекта Python
Допустим, у нас есть строка JSON. И мы хотим его декодировать и преобразовать в объект Python (обычно это список или словарь).
import json string = '{"apple": 4, "orange": 5, "pear": 6}' x = json.loads(string) print(x) # {'apple': 4, 'orange': 5, 'pear': 6} # x is a dict
json.loads
- Принимает строку JSON (тип str)
- преобразует его в объект Python (list/dict)
- возвращает объект Python (список/словарь)
2) json.dumps — объект Python в строку JSON
Допустим, теперь у нас есть объект Python. Точнее, словарь Python. И мы хотим преобразовать это в строку JSON.
import json d = {'apple': 4, 'orange': 5, 'pear': 6} string = json.dumps(d) print(string) # {"apple": 4, "orange": 5, "pear": 6} # string is a str type
json.dumps
- принимает объект Python (обычно list/dict)
- преобразует объект в строку JSON
- возвращает строку
3) json.load — ФАЙЛ .json для объекта Python
Допустим, у нас есть строка JSON в файле .json test.json
здесь:
{"apple": 4, "orange": 5, "pear": 6} import json with open('test.json', 'r') as f: x = json.load(f) print(x) # {'apple': 4, 'orange': 5, 'pear': 6}
json.load
- принимает объект
_io.TextIOWrapper
. Которые мы можем получить с помощью…