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()로,
value.encode()
읽을 때는 decode()로 읽는다.
value.decode()
'python' 카테고리의 다른 글
[python] 특이한 문법 try-else 문 (0) | 2018.05.29 |
---|---|
[python] 특이한 문법 for else 구문 예 (0) | 2018.05.29 |
[python] jinja2.exceptions.UndefinedError: 'len' is undefined 해결하기 (0) | 2018.03.27 |
[python] 테스크 코드 실행 - tox 이용 (0) | 2018.02.23 |
[python] sql_alchemy 에서 join을 사용할 때 유의해야 할 사항 - sql_alchemy에 대한 이해 (0) | 2018.02.22 |