可以用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'>)
从代码中可以明显看出,我有一个想法,将其pickle,然后通过json发送,并将其保存到其他地方
这在脚本中起作用。但我肯定不能发送它,因为正如你所看到的,编码是字符串。例如,如果我通过MQTT发送它,我将只发送一些字符串形式的引用
你知道有没有可能通过json函数或生成器发送消息
另外,我想指出我不想使用EVAL
经过一番寻找,我找到了一条可能的路
Dilled生成器以字节为单位:
相关问题 更多 >
编程相关推荐