python2에서 string 타입에 대해서 decode('utf-8')를 잘 실행할 수 있지만,
python3에서는 기본이 utf-8이기 때문에 굳이 decode를 사용할 필요가 없다. 따라서 decode 함수도 없다.
>>> result = ""
>>> str(type(result))
"<class 'str'>"
>>> result.decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'decode'
>>>
https://docs.python.org/3/howto/unicode.html
The default encoding for Python source code is UTF-8, so you can simply include a Unicode character in a string literal:
또한 None도 생겼다.
python2에서는 kazoo를 통해서 얻은 값은 empty string이였는데.. python3에서는 None타입을 사용했다.
flask에서는 다음과 같이 사용했다.
{% if node.data == None %}
{% else %}
<span style="word-wrap: break-word">
{{node.data}}
</span>
{% endif %}
그리고
파이썬2에서 딕셔너리의 iteritems()는 사라지고 items()로 대체되었다.
그 외
https://wiki.python.org/moin/Python3.0#Built-In_Changes를 참고한다.
파이썬2에서 3로 전환하면서.. 발생했는데..
flask에서는 아래와 같은 코드는 에러가 발생한다 (TypeError: 'NoneType' object is not subscriptable)
flask 0.10부터 json 프로퍼티는 None을 리턴한다. 2->3 버전 이슈는 아니고 라이브러리 이슈가 있다.
'python' 카테고리의 다른 글
fatal error: Python.h: No such file or directory #include "Python.h" 해결하기 (0) | 2017.10.10 |
---|---|
[python3] ++ 연산자 (0) | 2017.09.28 |
[python3] 파이썬 값/타입 확인 예제 (0) | 2017.09.28 |
flask 환경 구성하기 (0) | 2017.09.19 |
pyenv 설치 방법 (0) | 2017.09.19 |