Nic*_*ick 5 python byte json mongodb fastapi
我正在使用 FAST API 来检索包含一些字节的 mongo 文档。结构如下
item =
{"namd" : "xyz",
"value1: b'\x89PNG\r\n\sla\..."
...
"some_other_byte: b'\x89PNG\r\n\sla\..."
}
Run Code Online (Sandbox Code Playgroud)
使用fast API中的post请求返回上述数据,它尝试将其转换为json,但无法自动执行此操作。
所以我尝试了这个:
json_compatible_item_data = jsonable_encoder(item)
Run Code Online (Sandbox Code Playgroud)
但后来我得到这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)
有没有办法自动将上面的 dict 转换为 json,以便可以在 REST API 中返回它?最好的方法是什么?
通过 FastAPI,jsonable_encoder
您可以使用自定义编码器。bytes
将任意对象转换为 base64 的示例str
:
json_compatible_item_data = jsonable_encoder(item, custom_encoder={
bytes: lambda v: base64.b64encode(v).decode('utf-8')})
Run Code Online (Sandbox Code Playgroud)
在客户端解码目标字段可以这样完成:
value1 = base64.b64decode(response_dict["value1"])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4923 次 |
最近记录: |