python3.5和python3.6关于json模块的区别

python3.5中

  无法反序列化bytes数据必须decode成str才可以

>>> importjson

>>> a =b'{"username": "xxx"}'

>>> c =json.loads(a)


'''

Traceback (most recent call last):

  File "", line 1, in

  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"", line 1, in

  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"))

你可能感兴趣的:(python3.5和python3.6关于json模块的区别)