, :
s = "i am a string!".encode('hex')
r = ""
for i in xrange(0, len(s), 2) :
r += chr(int(s[i:i+2], 16))
print r==s.decode('hex')
, s.decode('hex').
"" . , . , .decode 50 , .
, - :
class DB(object):
def __init__(self, data):
self.data = data
self.decoded = {}
def __getitem__(self, name):
try:
return self.decoded[name]
except KeyError:
self.decoded[name] = ret = self.data[ self._get_field_slice( name ) ].decode('hex')
return ret
def _get_field_slice(self, name):
return slice( ... )
db = DB(encoded_data)
print db["some_field"]