Ste*_*ger 6 python json flask jsondecoder
我正在使用烧瓶并且有很多请求。Flask 使用的 json 模块非常慢。我自动可以使用simplejson,但这有点慢,而不是更快。根据文档,我可以定义一个解码器(flask.json_decoder),但是 orjson 没有这个类。我只有功能加载和转储。有人可以解释一下,我如何用orjson交换 json 模块?最后我只想使用负载和转储功能,但我无法连接我的松散端。
小智 6
从Flask 2.2.0版本开始,您应该使用如下代码:
from flask.json.provider import JSONProvider
from flask import Flask
import orjson
class ORJSONProvider(JSONProvider):
def __init__(self, *args, **kwargs):
self.options = kwargs
super().__init__(*args, **kwargs)
def loads(self, s, **kwargs):
return orjson.loads(s)
def dumps(self, obj, **kwargs):
# decode back to str, as orjson returns bytes
return orjson.dumps(obj, option=orjson.OPT_NON_STR_KEYS).decode('utf-8')
app = Flask(__name__)
app.json = ORJSONProvider(app)
Run Code Online (Sandbox Code Playgroud)
一个非常基本的实现可能如下所示:
class ORJSONDecoder:
def __init__(self, **kwargs):
# eventually take into consideration when deserializing
self.options = kwargs
def decode(self, obj):
return orjson.loads(obj)
class ORJSONEncoder:
def __init__(self, **kwargs):
# eventually take into consideration when serializing
self.options = kwargs
def encode(self, obj):
# decode back to str, as orjson returns bytes
return orjson.dumps(obj).decode('utf-8')
app = Flask(__name__)
app.json_encoder = ORJSONEncoder
app.json_decoder = ORJSONDecoder
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
878 次 |
最近记录: |