Можно ли отправлять функции или генераторы с протоколом json?
Что я пробовал:
import json
import pickle
def gen():
for i in range(10):
yield i
pickled= pickle.dumps(gen)
jsoned = json.dumps(pickled)
enjsoned = json.loads(jsoned)
enpickled = pickle.loads(enjsoned)
>>> for i in enpickled():
print(i)
0
1
2
3
4
5
6
7
8
9
>>> print(pickled, type(pickled))
('c__main__\ngen\np0\n.', <type 'str'>)
>>> print(jsoned,type(jsoned))
('"c__main__\\ngen\\np0\\n."', <type 'str'>)
>>> print(enjsoned,type(enjsoned))
(u'c__main__\ngen\np0\n.', <type 'unicode'>)
Из кода, очевидно, у меня была идея засолить его, отправить егоповерх json и зашифровал его где-то еще.
Это работает внутри скрипта.Но я точно не могу отправить его, потому что, как видите, кодировка в строке.Так что, если я отправлю его, например, через MQTT, я просто отправлю некоторую ссылку в строке.
Есть идеи, можно ли отправлять через функции или генераторы json?
Также мне хотелось быотметить, что я не хочу использовать EVAL