0

我有这个类代表我的模型:

from google.appengine.ext import db

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

我想检索那个 blob 属性。但是,我想检索字节数组并将其输出到字符串。前任。:“AE214FAA21617772”用于存储在我的 blob 中的 8 字节图像。

我尝试使用 blob_reader 和其他一些方法,但我总是收到类似的错误

UnicodeDecodeError:“utf8”编解码器无法解码位置 0 中的字节 0x89:无效的起始字节

或者

hex() 参数不能转换为十六进制

等等

任何人都可以帮助我获得正确的方法来做到这一点?谢谢!

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

您可以使用 以十六进制编码 str 实例foo.encode('hex')

于 2012-11-19T15:08:32.563 回答
0

我终于用这行流畅的代码得到了我想要的东西:

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