python3.5和3.6区别


 

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

 

python3.5中

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

1
2
3
4
5
6
7
8
9
10
11
12
>>>  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解决办法:

1
2
3
4
5
6
7
8
9
10
>>> 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类型都可以反序列化

1
2
3
4
5
>>>  import  json
>>> a  =  b '{"username": "xxx"}'
>>> c  =  json.loads(a)
>>> g  =  b '{"username": "xxx"}'
>>> h  =  json.loads(g.decode( "utf-8" ))

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM