Ручная сериализация
Вы превращаете данные в строку, объединяете или еще что-то делаете.Это быстро и не занимает много места, но требует работы и обслуживания, и это не гибко.
Если другой язык хочет прочитать данные, вам нужно снова их кодировать.Нет СУХОЙ.
Хорошо для очень маленьких данных, но на самом деле объем работы обычно не стоит того, если вы не ищете скорость и эффективность использования памяти и можете измерить, что ваша реализация значительно лучше.
Pickle
Медленно, но вы можете сериализовать сложные объекты и даже вызываться.Это мощно, и это так просто, что это не просто.
С другой стороны, возможно, что в итоге получится что-то, что вы не можете получить и сломать свой код.Кроме того, вы не можете делиться данными с любой библиотекой, написанной на другом языке.
В конце концов, формат не читается человеком (трудно делать отладку) и довольно многословен.
Очень приятно поделитьсяобъекты и задачи, не очень приятные для сообщений.
json
Достаточно быстро, легко реализуемо с простыми и средне сложными структурами данных.Она гибкая, удобочитаемая, и данные можно легко распространять на разные языки.
Для сложных данных вам придется написать немного кода.
Если у вас нет особых потребностей, это, вероятно, лучший баланс между функциями и сложностью.Особенно с тех пор, как последняя реализация в Python lib находится на C, а скорость в порядке.
xml
Многословно, сложно создать и трудно поддерживать, если у вас неттяжелая работа, которая делает всю работу за вас.Медленно.
Если бы это не было требованием, я бы его избегал.
В конце
Теперь, как обычно, скорость и эффективность пространства относительно,и вы должны сначала ответить на вопросы:
- какая эффективность мне нужна?
- что я готов заплатить (деньги, время, энергию) за это?
- какое решение подходит для моей нынешней системы?
Это все, что имеет значение.
Этот чудесный момент философии прошел, используйте JSON.