我正在尝试在一个简单的 Flask 应用程序中通过 Flask 发送一个装满整数的双端队列集合。
我面临的问题是双端队列不可序列化
from flask import Flask, jsonify
import collections
d=collections.deque(maxlen=10)
app=Flask(__name__)
@app.route('/')
def index():
for i in range(10):
d.append(i)
return jsonify(d)
if __name__=='__main__':
app.run(debug=True)
输出错误为
TypeError: Object of type deque is not JSON serializable
如何序列化要通过 Flask 发送的双端队列集合?考虑到我需要在另一个 python 服务器上通过这个双端队列对发送的整数进行一些数学算法。
最佳答案
您可以创建一个自定义编码器,它知道如何将双端队列转换为 JSON:
from json import JSONEncoder
from collections import deque
class DequeEncoder(JSONEncoder):
def default(self, obj):
if isinstance(obj, deque):
return list(obj)
return JSONEncoder.default(self, obj)
像这样使用它:
d = deque(("A", "B", "C"))
json.dumps(d, cls=DequeEncoder)
关于python - 如何在 python 中通过 flask 发送双端队列集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56631350/