• 序列化


    模块  json & pickle            

    把str/int字典写入文件

    f=open("user_acc.txt","w")
    
     
    
    info={
    
    'alben':'123',
    
    'nichole':'321'
    
    }
    
     
    
    f.write(str(info))

    读取字典文件:

    按照常规读取方法编写脚本——

    with open('user_acc.txt') as f:
    
    data=f.read()
    
    for I in data:
    
    print (i)

    这时候,python是一个字符一个字符的读取的,读取的内容完全不是字典格式的。

    原因:

     因为存储在磁盘上的数据是str格式的,但是读取文件的时候是通过2进制的格式存放在内存中的。

    序列化:

    2进制到字符串

    反序列化:

    字符串到2进制

    通过pickle实现序列化与反序列化——

    把字典格式以二进制的格式写入文件:

    通过pickle模块

    import pickle
    
     
    
    f=open("user_acc.txt","wb")
    
     
    
    info={
    
    'alben':'123',
    
    'nichole':'321'
    
    }
    
    f.write(pickle.dumps(info))

    这时候user_acc.txt直接打开显示的不是人为直观理解的格式

    读取该文件:

    import pickle
    
     
    
    with open('user_acc.txt','rb')as file:
    
     
    
    data=pickle.loads(file.read())
    
     
    
    print(data)
    
     

    使用模块json:

    直接黏贴代码——(有细微区别,json直接存str,所以写入的文件是人为可以直接理解的)

    JSON 所有语言通用,picklePython独有的,并且pickle不仅仅可以序列化基本数据类型(dict,list,tuple),它支持更多数据格式,包括函数!

    写入——

    import json
    
     
    
    f=open("user_acc.txt","w")
    
     
    
    info={
    
    'alben':'123',
    
    'nichole':'321'
    
    }
    
     
    
    f.write(json.dumps(info))

    读取——

    import json
    
     
    
    with open('user_acc.txt','r') as file:
    
    data=json.loads(file.read())
    
     
    
    print(data)
  • 相关阅读:
    Linux内核链表——看这一篇文章就够了
    2的幂和按位与&——效率
    fgets注意事项
    GDB TUI
    GDB TUI
    linux shell命令行选项与参数用法详解
    What are the differences between Perl, Python, AWK and sed
    What is the difference between sed and awk
    /proc/sysrq-trigger
    C++ Sqlite3的基本使用
  • 原文地址:https://www.cnblogs.com/alben-cisco/p/6921863.html
Copyright © 2020-2023  润新知