Python отправляет словарь через TCP - PullRequest
9 голосов
/ 14 июня 2011

Я новичок в Python, и мне любопытно, как я могу отправить словарь через TCP

Ответы [ 4 ]

13 голосов
/ 14 июня 2011

Вы должны сериализовать его с pickle:

import pickle
dict = {...}
tcp_send(pickle.dumps(dict))

А на другом конце:

import pickle
dict = pickle.loads(tcp_recieve())

Если другой конец не написан на python, вы можете использовать формат сериализации данных, например xml , json или yaml .

10 голосов
/ 14 июня 2011

Вы можете использовать pickle, чтобы преобразовать любой объект Python (включая словарь) в поток байтов, который затем может быть отправлен по TCP и распакован на принимающей стороне.

В качестве альтернативы вы можете использовать json, что не зависит от того, является ли принимающая сторона клиентом Python.

5 голосов
/ 14 июня 2011

Pickle считается небезопасным для отправки структур данных через соединения, поскольку объект никогда не может быть достоверно восстановлен.Вот почему yaml, json или любой другой формат считается предпочтительным.

0 голосов
/ 03 октября 2017

да. это может быть необеспеченным. но вы можете использовать https и отправить его через почтовый метод. для получения метода, попробуйте рассмотреть шифрование рассылки перед отправкой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...