python 基础之pickle 与json 报错问题解决方案

Python 基础之pickle与json

        有没有在搞pickle与json在进行数据储存的时候老是报错,这个有些让人烦恼,在之前有一篇介绍过它们的基本用法以及在使用过长中避免一些坑,但是今天在把对象写入的时候pickle 与json却给我而给出了不同的结果。

        我们先看一下我当时做的结果:

        

     

    这是为啥?传递的参数是一致的为啥json和pickle会有如此大的差距呢?Student为啥就不是可序列化的对象呢?有些困惑,其实json中有许多的参数是可以设置的。之前的Student对象不可以序列化成json,是应为在默认的情况下,dumps方法不知道如何把Student实例变换成一个json的{}对象。

    在可选参数default就是把任意一个对象可序列化为json的对象,这里就必须给Student专门写一个转化函数,再把函数传递进去就可以解决这个问题了,我们来看一下如何做:

    看起来还是把这个问题初步解决掉了,哈哈!这个问题是解决了,下次再来个老师Teacher类,是不是还得这样搞一下呀,这样是不是就有点不合适了,那就得想个别的办法,通常呢每一个calss 都有一个__dict__的方法,so ,这样也是可以解决这个问题的,来做一下验证:

    解决的还可以,好了,妈妈再也不担心我以后不会用pickle和json存储对象数据了!!!

posted @ 2017-05-06 21:46  还是牛  阅读(222)  评论(0编辑  收藏  举报