zoukankan      html  css  js  c++  java
  • python 序列化 pickle和json

    我们把对象(变量)从内存中变成可存储或传输的过程称为序列化,在Python中用pickle或json标准库。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输的别的计算机上。

    pickle:支持Python里所有的数据类型(包括函数)

    json:支持str,int,tule,list,dict

    如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为json,因为json表示出来就是一个字符串,可以被所以语言所读取,也可以方便地存储到磁盘或者通过网络传输。json不仅是标准格式,而且比xml快,可以直接在web页面中读取,非常方便。

    import json

    #---序列化--- dic={'name':'jack','age':22,'sex':'male'} data=json.dumps(dic) f=open('json_test.txt','w') f.write(data) #--json.dump(dic.f)
    f.close()
    #---反序列化---
    fr=open('json_test.txt') 
    dicdata=json.loads(fr.read()) #---等价于dicdata=json.load(fr)
    fz.close()
    
    

    json:JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。

    将Python对象转换成json对象常用的两个函数是dumps和dump,之间唯一的区别就是dump把Python对象转换成json对象生成一个fp文件流,而dumps则生成一个字符串。

    将json对象转成Python对象常用的两个函数是load和loads,区别同上。

    下面是pickle标准库的用法:

    import pickle

    #---序列化--- dic={'name':'jack','age':22,'sex':'male'} p=pickle.dumps(dic) f=open('pickle_test','wb') #---等价于pickle.dump(dic,f) f.write(p) f.close()
    #---反序列化--- fr=open('pickle_test','rb') dicata=pickle.loads(fr.read()) #---等价于dicdata=pickle.load(fr) fr.close()

      

    参考资料:https://www.cnblogs.com/fmgao-technology/p/9078924.html 

  • 相关阅读:
    Ubuntu 12.10 安装破解sublimetext 2
    封装一个类型转换的方法
    【转】CultureInfo中重要的InvariantCulture
    C# 36进制转10进制
    用泛型的IEqualityComparer<T>接口去重复项
    关于wamp启动是80端口被占用的问题详解(win7系统下WAMP 80端口被MicrosoftHTTPAPI/2.0占用的解决办法)
    Ubuntu 更改鼠标滚轮速度
    edge ctrl+c 复制不起作用
    centos 7 mysql8 安装和卸载
    Windows Terminal 终端 SSH连接centos7 linux
  • 原文地址:https://www.cnblogs.com/blogzyq/p/11105060.html
Copyright © 2011-2022 走看看