python3.5中
无法反序列化bytes数据必须decode成str才可以
>>> importjson
>>> 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解决办法:
>>> 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, inloads
s.__class__.__name__))
TypeError: the JSON objectmust be str, not'bytes'
>>> c =json.loads(a.decode('utf-8'))
>>> c
123
python3.6中
无论bytes类型或者str类型都可以反序列化
>>> importjson
>>> a =b'{"username": "xxx"}'
>>> c =json.loads(a)
>>> g =b'{"username": "xxx"}'
>>> h =json.loads(g.decode("utf-8"))
网友评论