Python で json 画像ファイルを受け入れるにはどうすればよいですか? データには使用josn.loads
しますが、画像ファイルはどうでしょうか?
2 に答える
JSON はテキスト形式です。画像は不透明なバイナリ データであるため、そのデータをテキスト形式にエンコードする必要があります。
Base64 は、そのようなデータに最も一般的に使用されます。これは、Python がbase64
モジュールで問題なく処理できます。
import base64
import json
image = base64.decodestring(json.dumps(data)['image'])
これは、プロフィール画像を更新するために Twitter がサポートしているものです。
ただし、画像データに JSON を使用することは、非常に小さな画像以外の場合はお勧めできません。Python に含まれる json パーサーは、適切なサイズの画像のような大きなペイロードで簡単に過負荷になります。
代わりに、PUT または POST 要求を使用して画像を受け入れる REST API を提供し、URL を使用して画像について通信する方がよいでしょう。
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()