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

Posted dragonliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3.5和python3.6关于json模块的区别相关的知识,希望对你有一定的参考价值。

python3.5中

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

>>> 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解决办法:

>>> 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‘))
>>> c
123

  

python3.6中

  无论bytes类型或者str类型都可以反序列化

>>> import json
>>> a = b‘{"username": "xxx"}‘
>>> c = json.loads(a)
>>> g = b‘{"username": "xxx"}‘
>>> h = json.loads(g.decode("utf-8"))

  

以上是关于python3.5和python3.6关于json模块的区别的主要内容,如果未能解决你的问题,请参考以下文章

python3.6下安装结巴分词需要注意的地方

python3.5和pip3安装路径不匹配问题

如何在 python 3.6 中使用类型提示?

ubuntu16 下安装python3.6 和Anaconda3

Ubuntu16.04下安装python3.6及问题解决

Web UI自动化(ubuntu系统,python3.6)