Я должен отправить объекты вокруг сети. Я собираюсь быть Скрученным использованием, и я только что начал осматривать документацию для него.
Насколько я знаю, единственный путь, сокеты реализаций Python через текст. Таким образом, как я отправил бы объект с помощью строк? Рассол? Или есть ли лучше что-то?
Наиболее распространенной сериализацией, предлагаемой между конечными точками Python, является формат pickle (в Python 2.any обязательно используйте модуль cPickle
и ] -1
он же pickle.HIGHEST_PROTOCOL
протокол; если вам нужна совместимость между Python 2. любой и Python 3. требуется больше внимания). Для особенно простых объектов модуль marshal
иногда может быть быстрее и компактнее. Для взаимодействия с конечными точками, отличными от Python, json
может быть лучшим (или вы можете использовать xml
для определения или принятия других существующих форматов сериализации), но они, вероятно, будут более громоздкими и медленнее форматировать и разобрать.
Насколько я знаю, единственный способ python реализует сокеты через текст.
Нет, приветствуются все строки байтов! -) Вас может смутить тот факт, что в Python 2 «обычная строка» на самом деле является строкой байтов («текст» будет юникодом
тип); Python 3 устанавливает все правильно и использует Unicode для «обычных строк» и особый тип байтовой строки для строк байтов.
Строки байтов - это общий способ, которым любой язык будет выполнять любую форму сериализации и десериализации в соответствии с тем или иным протоколом - такие потоки байтов или большие двоичные объекты могут поступать в сети, базы данных, простые файлы и т. Д. И т. Д. конечно.
Twisted предлагает свой собственный формат сериализации как часть twisted.spread - он в основном для использования с Perspective Broker (PB), но вы можете использовать его для своих целей, если не хотите использовать ПБ по какой-то особой причине. Документация по части сериализации, twisted.spread.jelly
, находится здесь , а также хорошо резюмирует цели формата ...:
Сохраняемость на основе S-выражений объекты python.
Это очень похоже на Соленый огурец; однако главная цель рассола вроде бы эффективность (как в космосе и время); основные цели желе безопасность, удобочитаемость и переносимость в другие среды.
Если вы больше заботитесь о безопасности, удобочитаемости и переносимости, чем о скорости и компактности, то jelly действительно может сослужить вам хорошую службу.