3

Python で json 画像ファイルを受け入れるにはどうすればよいですか? データには使用josn.loadsしますが、画像ファイルはどうでしょうか?

4

2 に答える 2

9

JSON はテキスト形式です。画像は不透明なバイナリ データであるため、そのデータをテキスト形式にエンコードする必要があります。

Base64 は、そのようなデータに最も一般的に使用されます。これは、Python がbase64モジュールで問題なく処理できます。

import base64
import json

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

これは、プロフィール画像を更新するために Twitter がサポートしているものです。

ただし、画像データに JSON を使用することは、非常に小さな画像以外の場合はお勧めできません。Python に含まれる json パーサーは、適切なサイズの画像のような大きなペイロードで簡単に過負荷になります。

代わりに、PUT または POST 要求を使用して画像を受け入れる REST API を提供し、URL を使用して画像について通信する方がよいでしょう。

于 2012-09-20T11:23:35.293 に答える
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()
于 2012-09-20T11:23:08.990 に答える