我们如何在 python 中接受 json 图像文件?我们josn.loads
用于数据,但图像文件呢?
问问题
15369 次
2 回答
9
JSON 是一种文本格式。由于图像是不透明的二进制数据,因此您需要将该数据编码为文本格式。
Base64 最常用于此类数据,python 可以使用base64
模块很好地处理这些数据:
import base64
import json
image = base64.decodestring(json.dumps(data)['image'])
这是 Twitter 支持更新您的个人资料图像的方式。
但是,对图像数据使用 JSON并不是一个好主意,除了非常小的图像。python 中包含的 json 解析器很容易被一个大的有效载荷(如大小合适的图像)过载。
您最好提供一个 REST API,它使用 PUT 或 POST 请求来接受图像,然后使用 URL 就图像进行通信。
于 2012-09-20T11:23:35.293 回答
3
JSON 是JavaScript 对象表示法。它用于使用基本类型、字符串、整数、浮点数、布尔值等来传达信息。
它可用于传递有关资源的元数据,但通常不能用于传递资源本身。
例如,您可能会收到如下 JSON 对象:
a = '''{
'imageUrl': '/images/image.png',
'imageName': 'My Image'
}'''
decoded = json.loads(a)
通常,您使用此表示信息自行检索资源。您可以使用标准库的网络模块在 python 中执行此操作。
import urllib2
img = urllib2.urlopen(decoded.imageUrl).read()
于 2012-09-20T11:23:08.990 回答