0

私は自分のモデルを表すこのクラスを持っています:

from google.appengine.ext import db

class PuzzleSets(db.Model):
   img = db.BlobProperty(required=True)
   ...

そのblobpropertyを取得したいと思います。ただし、bytes配列を取得して、文字列に出力したいと思います。元。:私のblobに保存されている8バイトの画像の場合は「AE214FAA21617772」。

blob_readerと他のいくつかのメソッドを試しましたが、常に次のようなエラーが発生します。

UnicodeDecodeError:'utf8'コーデックは位置0のバイト0x89をデコードできません:無効な開始バイト

また

hex()引数を16進数に変換できません

など

誰かが私がこれを行う正しい方法を得るのを手伝ってくれる?ありがとう!

4

3 に答える 3

1

Blobreaderは、BlobStoreから読み取るためのものです。BlobPropertyを使用する/文字列を取得するには、次を使用します。

data = db.Blob(puzzleset_instance.img)

BLOBにテキストが含まれている場合は、次を使用します。

unicode_data = db.Blob(instance.blob_property).decode('utf-8')
于 2012-11-18T01:32:37.577 に答える
0

私はついにこの洗練されたコード行で欲しいものを手に入れました:

self.response.out.write(''.join([hex(z)[2:].zfill(2) for z in bytearray(puzzleset_instance.img)]))
于 2012-11-18T02:28:30.500 に答える
0

strインスタンスは。で16進数でエンコードできますfoo.encode('hex')

于 2012-11-19T15:08:32.563 に答える