gpt4 book ai didi

python - 如何从 Tornado 提供二进制数据?

转载 作者:太空宇宙 更新时间:2023-11-03 19:13:57 29 4
gpt4 key购买 nike

我有一个 numpy 数组,我想使用 Tornado 提供服务,但是当我尝试使用 self.write(my_np_array) 编写它时,我只是得到一个 AssertionError。

我做错了什么?

File "server.py", line 28, in get
self.write(values)
File "/usr/lib/python2.7/site-packages/tornado/web.py", line 468, in write
chunk = utf8(chunk)
File "/usr/lib/python2.7/site-packages/tornado/escape.py", line 160, in utf8
assert isinstance(value, unicode)

最佳答案

不太确定您的目标是什么,但如果您想获得对象的字符串表示形式,您可以这样做

self.write(str(your_object))

如果您想将 numpy 数组作为 python 对象提供服务,以便在不同的客户端上使用它,您需要先 pickle 该对象

import pickle
self.write(pickle.dumps(your_object))

然后可以使用以下方法检索对象

your_object = pickle.loads(sent_object)

请记住,从不受信任的来源中 unpickle 对象是很危险的,因为它可能会导致恶意代码执行。

编辑:

如果您想传输 numpy 数组并在 javascript 中使用它,则不需要二进制表示形式。

只需将 numpy 数组转换为列表即可

your_numpy_list = your_numpy_object.tolist()

并将其转换为json

import json
self.write(json.dumps(your_numpy_list))

在 javascript 端,您只需解析结果字符串

var result = JSON.parse(resultString)

并从中创建类型化数组

var typedResult = new Float32Array(result)

瞧!

关于python - 如何从 Tornado 提供二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12037089/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com