python - 将 numpy 数组列表转换为 json 以从 flask api 返回

标签 python json numpy serialization flask-restful

我有一个像这样的 python 字典:

mydic = {
    'x1': list_of_numpy_array,
    'x2': a numpy_array,
    'x3': a list_of_numpy_array,
    'x4': a list_of_numpy_array
}

我想将这个字典从 flask-api 发送到调用这个 api 的客户端。 当我使用这段代码时:

class GetRepresentationResource(Resource):
    url = 'representation'

    def get(self):
        # previous lines of my code which generates mydic
        return {
                'data': mydict,
                'err': ''
        }

我收到错误:不可序列化

最佳答案

我抛出这个错误是因为 np.array 不是 JSON 可序列化的。

在序列化之前,你需要将它们中的每一个都转换成一个列表

尝试以下操作:


for k,v in mydict.items():
  if(isinstance(v, np.ndarray)):
    mydict[k] =  v.tolist()

参见 this Repl.it .

请注意,您需要确保数组中的类型是可序列化的

关于python - 将 numpy 数组列表转换为 json 以从 flask api 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46318383/

相关文章:

python - 如何使用 BeautifulSoup 提取网站中的所有 URL

python - Pyenchant utils 加载错误

Python - 猜词游戏对具有重复字符的单词失败

json - 如何在 Rust 中反序列化 JSON 中的 &str 结构字段

json - Ember 数据的 JSON 格式不正确

java - Facebook API 和访问 token

python - 在 Pandas 数据框中对重复的列 ID 进行分组

python - 正则表达式返回括号之间的文本

python - 向量外积的泛化 : apply it to every column of a matrix

Python3 : two dictionaries with numpy vectors of different size consume the same amount of RAM