美文网首页
序列化模块

序列化模块

作者: Yanl__ | 来源:发表于2019-08-20 09:33 被阅读0次

json

  • 通用的序列化格式
  • 只有很少一部分数据类型能够通过json转化成字符串
dumps 序列化方法 (数字,字符串,列表,字典,元组(元组序列化成str,反序列化为列表))
loads 反序列化方法
##########################

dump 

import json
dic = {1:'a',2:'b'}
f = open('file', 'w', encoding='utf-8')
json.dump(dic, f)
# json.dump(dic, f, ensure_ascii=False)   ensure_ascii 设置为false可以在文件中显示中文,否则显示bytes
f.close()

load

f = open('file')
res = json.load(f)
f.close()
print(res)

pickle

  • 所有的python中的数据类型都可以转化成字符串形式
  • pickle序列化的内容只有python能理解
  • 且部分反序列化依赖python代码
    (和json一样有四个方法,dumps, loads,dump,load)由于是dumps是转成二进制内容的,所以通过文件操作时,需要用wb or rb的方式
import pickle
dic = {'k1':'v1','k2':'v2'}
str_dic = pickle.dumps(dic)
print(str_dic)  # 一串二进制内容
  • 可以多次dump和多次load同一个文件中的内容
import pickle
import time
struct_time1  = time.localtime(1000000000)
struct_time2  = time.localtime(2000000000)
f = open('pickle_file','wb')
pickle.dump(struct_time1,f) # 一次dump
pickle.dump(struct_time2,f)  # 第二次dump
f.close()
f = open('pickle_file','rb')
struct_time1 = pickle.load(f)
struct_time2 = pickle.load(f)
print(struct_time1.tm_year)
print(struct_time2.tm_year)
f.close()

shelve

  • 序列化句柄
  • 使用句柄直接操作
import shelve
f = shelve.open('shelve_file')
f['key'] = {'int':10, 'float':9.5}  # 直接对文件句柄进行操作,就可以写入数据
f.close()

import shelve
f1 = shelve.open('shelve_file')
# f1 = shelve.open('shelve_file', writeback = True) writeback设置为True,可以对对象进行修改,但是会增加额外的内存消耗,并且在DB close()的时候会将所有对象进行重新写入,因为shelve不知道哪些对象没有修改。
existing = f1['key'] # 取出数据的时候只需要直接用key获取,如果key不存在,会报错
f1.close()
print(existing)

相关文章

  • Python 入门之 内置模块 -- 序列化模块(json模块、

    Python 入门之 内置模块 -- 序列化模块(json模块、pickle模块) 1、序列化 Python中这种...

  • AFNetworking 源码阅读

    AFNetworking 五大模块1、网络通信模块 2、网络监听模块 3、序列化/反序列化模块 4、安全传输模块 ...

  • AFNetworking原理

    AFNetworking结构最底层是由会话、网络监听模块、网络安全模块组成,然后是请求序列化模块、响应序列化模块,...

  • 使用json模块

    json模块是python内置的用于序列化的模块。 序列化和反序列化 序列化就是将python类型的数据结构转换为...

  • 序列化和反序列细节处理

    python 中pickle 和 json 都是序列化和反序列化的模块。 关于序列化和反序列化 序列化和反序列化[...

  • 数据序列化格式简介

    [TOC] 数据序列化 用于模块通讯时,将对象序列化为通信流,高效的传输到另一个模块,并提供反序列化还原数据 Js...

  • 模块 一

    json与pickle序列化模块 time与datetime时间模块 random随机模块 hashlib 校验模...

  • 注册短信验证三步走

    1、发送验证码模块 2\验证手机号模块:序列化 3\视图模块

  • python学习笔记--pickle模块

    Python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行...

  • Python常用模块集锦

    Python常用模块集锦 常用模块主要分为以下几类(缺失的后续再补充): 时间转换 时间计算 序列化和反序列化:j...

网友评论

      本文标题:序列化模块

      本文链接:https://www.haomeiwen.com/subject/qtkusctx.html