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 

  • 相关阅读:
    POJ 3041 Asteroids 最小点覆盖 == 二分图的最大匹配
    POJ 3083 Children of the Candy Corn bfs和dfs
    POJ 2049 Finding Nemo bfs 建图很难。。
    POJ 2513 Colored Sticks 字典树、并查集、欧拉通路
    POJ 1013 Counterfeit Dollar 集合上的位运算
    POJ 2965 The Pilots Brothers' refrigerator 位运算枚举
    无聊拿socket写的100以内的加法考试。。。
    POJ 1753 Flip Game
    初学socket,c语言写的简单局域网聊天
    汇编语言 复习 第十一章 标志寄存器
  • 原文地址:https://www.cnblogs.com/blogzyq/p/11105060.html
Copyright © 2011-2022 走看看