python3.5和3.6区别
python3.5和python3.6关于json模块的区别
python3.5中
无法反序列化bytes数据必须decode成str才可以
|
1
2
3
4
5
6
7
8
9
10
11
12
|
>>> import json>>> a = b'{"username": "xxx"}'>>> c = json.loads(a)'''Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/__init__.py", line 312, in loads s.__class__.__name__))TypeError: the JSON object must be str, not 'bytes'''' |
3.5解决办法:
|
1
2
3
4
5
6
7
8
9
10
|
>>> a = b'123'>>> c = json.loads(a)Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/__init__.py", line 312, in loads s.__class__.__name__))TypeError: the JSON object must be str, not 'bytes'>>> c = json.loads(a.decode('utf-8'))>>> c123 |
python3.6中
无论bytes类型或者str类型都可以反序列化
|
1
2
3
4
5
|
>>> import json>>> a = b'{"username": "xxx"}'>>> c = json.loads(a)>>> g = b'{"username": "xxx"}'>>> h = json.loads(g.decode("utf-8")) |


浙公网安备 33010602011771号