JavaScript работает на клиентском компьютере. Python работает на сервере. Это две разные машины. Они общаются по сети. Вы можете отправлять только последовательности байтов по сети. JSON - это способ сериализации объектов, то есть превращение объектов Python в переносимую (т.е. независимую от процессора, процессора, ОС) последовательность байтов.
В JSON нет ничего особенного, вы можете использовать какой-то другой формат, например XML, или даже двоичный протобуф. В JSON хорошо то, что в Python и JavaScript встроены парсеры JSON.