zookeeper와 연동하는 kazoo를 python3로 업그레이드하면서 알게된 내용이다.

python2에서는 바이트 문자열(byte string)이라는 것은 무시되었다.

A prefix of 'b' or 'B' is ignored in Python 2; it indicates that the literal should become a bytes literal in Python 3 (e.g. when code is automatically converted with 2to3). A 'u' or 'b' prefix may be followed by an 'r' prefix.

그러나, python3부터는 바이트 문자열을 b또는 B로 쓰이게 되었다.

Bytes literals are always prefixed with 'b' or 'B'; they produce an instance of the bytes type instead of the str type. They may only contain ASCII characters; bytes with a numeric value of 128 or greater must be expressed with escapes.

즉 저장할 때 문자열은 encode()로,


읽을 때는 decode()로 읽는다.


Posted by 김용환 '김용환'