如何 return cherry py 请求正文中的字节值
How to return a bytes value in a cherry py request body
我有一个包含 bytea
列的 postgres table。此列包含图像。
SqlAlchemy 模型将此列定义为 LargeBinary
。我也尝试过使用 BLOB
,但它没有改变任何东西。
我可以轻松地从数据库中检索一个值,我得到的是一个 bytes
.
类型的变量
我如何json验证字节数组?我需要 json 值,这样我就可以在 cherrypy 请求正文中 return 它:
data = { 'id_image': image.id_image, 'image': image.value }
我假设您需要在浏览器或类似软件中显示该图像。
通常在将图像作为字符串嵌入网页时可以使用 Data URI。现代浏览器知道如何解码它。
此外,我假设您有 PNG 图片。如果您的情况不同,请随时将 image/png
更改为符合您需求的内容。
以下是使用 Python 生成数据 URI 的方法。
此示例使用 Python 3.6 语法:
import base64
img_id = image.id_image
img_base64_encoded = base64.b64encode(image.value).decode('ascii')
img_type = 'image/png' # Use some smart image type guessing if applicable
img_data_uri = f'data:{img_type};base64,{img_base64_encoded}'
img_data = {
'id': image.id_image,
'data_uri': img_data_uri
}
我有一个包含 bytea
列的 postgres table。此列包含图像。
SqlAlchemy 模型将此列定义为 LargeBinary
。我也尝试过使用 BLOB
,但它没有改变任何东西。
我可以轻松地从数据库中检索一个值,我得到的是一个 bytes
.
我如何json验证字节数组?我需要 json 值,这样我就可以在 cherrypy 请求正文中 return 它:
data = { 'id_image': image.id_image, 'image': image.value }
我假设您需要在浏览器或类似软件中显示该图像。
通常在将图像作为字符串嵌入网页时可以使用 Data URI。现代浏览器知道如何解码它。
此外,我假设您有 PNG 图片。如果您的情况不同,请随时将 image/png
更改为符合您需求的内容。
以下是使用 Python 生成数据 URI 的方法。
此示例使用 Python 3.6 语法:
import base64
img_id = image.id_image
img_base64_encoded = base64.b64encode(image.value).decode('ascii')
img_type = 'image/png' # Use some smart image type guessing if applicable
img_data_uri = f'data:{img_type};base64,{img_base64_encoded}'
img_data = {
'id': image.id_image,
'data_uri': img_data_uri
}