在Python中接受json图像文件

时间:2012-09-20 11:10:23

标签: python json

我们如何在python中接受json图像文件?我们使用josn.loads来获取数据但是图像文件呢?

2 个答案:

答案 0 :(得分:9)

JSON是一种文本格式。由于图像是不透明的二进制数据,因此您需要将该数据编码为文本格式。

Base64最常用于此类数据,python可以使用base64 module处理得很好:

import base64
import json

image = base64.decodestring(json.dumps(data)['image'])

Twitter支持updating your profile image

然而,对于除了非常小的图像之外的所有图像数据使用JSON 不是一个好主意。 python中包含的json解析器很容易使用大型有效负载重载,就像大小合适的图像一样。

您最好提供一个使用PUT或POST请求接受图像的REST API,然后使用URL与图像进行通信。

答案 1 :(得分:3)

JSON是 JavaScript Object Notation 。它用于通过使用基本类型,字符串,整数,浮点数,布尔值等来传达信息。

它可用于传递有关资源的元数据,但通常不会传递资源本身。

例如,您可能会收到如下所示的JSON对象:

a = '''{
  'imageUrl': '/images/image.png',
  'imageName': 'My Image'  
}'''
decoded = json.loads(a)

通常,您使用此表示信息来自行检索资源。您可以使用标准库的网络模块在python中执行此操作。

import urllib2
img = urllib2.urlopen(decoded.imageUrl).read()