我正在尝试使用基于 JSON 的宁静协议为 python3 应用程序编写一个简单的服务器前端。到目前为止,bottle似乎是最适合该任务的框架(它支持 python3,以一种很好的方式处理方法分派,并且很容易返回 JSON。)问题在于解析输入请求中的 JSON。
文档只提到request.fields
and request.files
,我假设两者都指的是 multipart/form-data 数据。没有提到直接访问请求数据。
查看源代码,我可以看到一个request.body
BytesIO 类型的对象。json.load
拒绝直接对其采取行动,在 json 库中以can't use a string pattern on a bytes-like object
. Content-Type
正确的方法可能是首先根据HTTP 标头中指定的字符集将字节解码为 unicode 字符。我不知道该怎么做;我可以看到一个 StringIO 类,并假设它可能保存一个字符缓冲区而不是字节,但看不到将 BytesIO 解码为 StringIO 的方法,如果这甚至可能的话。
当然,也可以将 BytesIO 对象读入字节串,然后将其解码为字符串,然后再将其传递给 JSON 解码器,但如果我理解正确,这会破坏整个事物的良好缓冲行为。
或者有什么更好的方法吗?