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

2019-03-14  本文已影响0人  sean_liu_01

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

上一篇 下一篇

猜你喜欢

热点阅读