I'm using PyCrypto for generating secure key hashes. I want to store one or more of the partial keys I generate. Each partial key is in the form
\x0f|4\xcc\x02b\xc3\xf8\xb0\xd8\xfc\xd4\x90VE\xf2
I have an ndb StringProperty()
in which I'd lke to store that info. However, it raises a BadValueError
saying it expects an UTF-8 encoded string. I tried using str's .encode('uft-8')
method but that also raises an error telling me it couldn't encode because bad positioning.
Anyway, my question is, how can I convert that byte string into something I can store in ndb?
Improved Answer:
In this case instead of storing the key as String or Text, you should use a
BlobProperty
which stores an uninterpreted byte string.Original Answer:
To convert bytes (strings) to unicode you use the method
decode
. You also need to use an encoding that preserves the original binary data, which is ISO-8859-1. See ISO-8859-1 encoding and binary data preservationConsider also using A TextProperty instead, as StringProperties are indexed.