码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-01-27 20:19:59      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:反序列化   ack   span   load   类型   post   version   not   pos   

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模块的区别

标签:反序列化   ack   span   load   类型   post   version   not   pos   

原文地址:https://www.cnblogs.com/liujiliang/p/8366708.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!