烧瓶和处理带有日期时间的 Zeep 响应



我正在使用Zeep调用SOAP WebService,它返回一个类似JSON的响应和一个datetime对象。我想使用 Flask 编写一个微服务并返回正确的 JSON 响应。然而,Flask抱怨说:

TypeError: Object of type datetime is not JSON serializable
from flask import Flask
from flask_restful import Resource, Api
import datetime
app = Flask(__name__)
api = Api(app)
class foo(Resource):
def get(self, x):
zeepResponse = {
'Response': {
'Number': x,
'DateTime': datetime.datetime(2020, 1, 1, 0, 0, 0),
'Other': None
}
}
return zeepResponse
api.add_resource(foo, '/post/<int:x>')
if __name__ == '__main__':
app.run(debug=True)

要从命令行进行测试,只需运行:

% curl http://localhost:5000/post/911

你能指导我如何将zeepResponse(特别是datetime(转换为适当的 JSON 可序列化结构吗?

打电话json.dumps(zeepResponse, default=str)似乎解决了我的问题。从堆栈溢出11875770

from flask import Flask
from flask_restful import Resource, Api
import datetime
import json
app = Flask(__name__)
api = Api(app)
class foo(Resource):
def get(self, x):
zeepResponse = {
'Response': {
'Number': x,
'DateTime': datetime.datetime(2020, 1, 1, 0, 0, 0),
'Other': None
}
}
return json.loads(json.dumps(zeepResponse, default=str))
api.add_resource(foo, '/post/<int:x>')
if __name__ == '__main__':
app.run(debug=True)

相关内容

  • 没有找到相关文章

最新更新