相关疑难解决方法(0)

SimpleJSON和NumPy数组

使用simplejson序列化numpy数组的最有效方法是什么?

python json numpy simplejson

41
推荐指数
4
解决办法
3万
查看次数

如何将Python numpy数组转换为base64输出

基本上,我需要做这个,但是在Python而非JavaScript.我从socketio连接接收到base64编码的字符串,将其转换为uint8并对其进行处理,然后需要将其转换为base64字符串,以便我可以将其发回.

所以,到目前为止,我已经得到了这个(我data从socketio服务器获取字典):

import pickle
import base64
from io import BytesIO
from PIL import Image

base64_image_string = data["image"]
image = Image.open(BytesIO(base64.b64decode(base64_image_string)))
img = np.array(image)
Run Code Online (Sandbox Code Playgroud)

我如何扭转这个过程从img回到base64_image_string

更新:
我已通过以下方式解决了这个问题(从上面的代码片段继续):

pil_img = Image.fromarray(img)
buff = BytesIO()
pil_img.save(buff, format="JPEG")
new_image_string = base64.b64encode(buff.getvalue()).decode("utf-8")
Run Code Online (Sandbox Code Playgroud)

有点令人困惑,new_image_string不一样,base64_image_string但是new_image_string看起来相同的图像,所以我很满意!

python arrays base64

10
推荐指数
2
解决办法
1万
查看次数

我如何在 Python 中序列化 json?

这是代码,错误如下:

import numpy as np
import json
X=np.arange(20)
t=dict(x=list(X))
print(json.dumps(t))
Run Code Online (Sandbox Code Playgroud)

错误是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python35\lib\json\__init__.py", line 230, in dumps
    return _default_encoder.encode(obj)
  File "C:\Python35\lib\json\encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "C:\Python35\lib\json\encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "C:\Python35\lib\json\encoder.py", line 180, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: 0 is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

请让我知道我能做些什么来摆脱这种情况。我正在尝试将此值传递给绘图窗口,并且发生了相同的错误。

python serialization json numpy python-3.x

3
推荐指数
1
解决办法
325
查看次数

标签 统计

python ×3

json ×2

numpy ×2

arrays ×1

base64 ×1

python-3.x ×1

serialization ×1

simplejson ×1