zoukankan      html  css  js  c++  java
  • Python---序列化

    任何数据类型转化为字符串的过程就叫做序列化!

    为什么要转换成字符串?1,做固态存储  2,做网路传输

    Python提供三种序列化方式:json,pickle,shelve三种

    json 支持的数据类型有tuple,list,dict

    pickle支持Python所有的数据类型

    import json

    dic = {“k”:“v”}

    print(type(dic))--->数据类型为字典

    print(dic)--->{'k','v'}

    json_dict = json.dumps(dic)------->字典转字符串的过程,序列化的过程 #dumps是和内存交互的

    print(type(json_dic))--->数据类型为字符串

    print(json_dict)--->{"k":"v"}

    print(json.loads(json_dict))--->结果为{‘k’:'v'},字符串转为其他数据类型的过程为反序列化

    with open(file,mode='w') as f:

      json.dump(dic,f)#dump 是个文件交互的

    两次dump进去的文件不能一次性load出来,如果要dump多条数据,没一条数据先dump一下,变成字符串,然后打开文件,写进文件里,加个回车符 ,读取的时候按照标志读出来,或者按行读,读出来之后再使用loads

    with open(file,mode='r') as f:

      json.load(f)  #从文件当中反序列化

    with open(file,'w') as f:

      str_dic = json.dump(dic)

      f.write(str_dic+' ')

      f.write(str_dic+' ')

      f.write(str_dic+' ')

    with open(file) as f:

      for line in f:

        json.load(line.strip())

    pickle的使用方法和json的使用方法是一模一样的,但是区别在于,pickle可以处理任何数据类型包括实例化的对象。但是往文件里写的格式是二进制,所以打开文件的方式是wb,同样读取文件的时候,使用的是rb;pickle在和文件交互的时候,可以被多次load

  • 相关阅读:
    Spring面试,IoC和AOP的理解
    WEB打印(jsp版)
    Spring事务管理机制的实现原理-动态代理
    spring面试题
    oracle PLSQL基础学习
    oracle创建表空间
    WM_CONCAT字符超过4000的处理办法
    Oracle 数据泵使用详解
    Oracle 数据泵详解
    linux下启动oracle
  • 原文地址:https://www.cnblogs.com/xiaoAzaina/p/9074768.html
Copyright © 2011-2022 走看看