美文网首页
python3.5和python3.6关于json模块的区别

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

作者: sean_liu_01 | 来源:发表于2019-03-14 13:40 被阅读0次

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

相关文章

网友评论

      本文标题:python3.5和python3.6关于json模块的区别

      本文链接:https://www.haomeiwen.com/subject/tapqmqtx.html