zoukankan      html  css  js  c++  java
  • python-json与pickle数据序列化

    json序列化

    info = {
        'name':'alex',
        'age':22
    }
    f = open("test.txt",'w')
    f.write(str(info))   #字典不能直接存,先转换成字符串
    f.close()
    import json
    info = {
        'name':'alex',
        'age':22
    }
    f = open("test.txt",'w')
    f.write(json.dumps(info))
    f.close()

    json反序列化

    f = open("test.txt",'r')
    data = eval(f.read())   #读出来也是字符串,要转换成字典
    f.close()
    print(data['age'])
    import json
    f = open("test.txt",'r')
    data = json.loads(f.read())
    print(data['age'])

    pickle可以序列化所有的数据类型

    import pickle
    info = {
        'name':'alex',
        'age':22
    }
    f = open("test.txt",'wb')
    pickle.dump(info,f)   #f.write(pickle.dumps(info))
    f.close()
    import pickle
    f = open("test.txt",'rb')
    data = pickle.load(f)   #data = pickle.loads(f.read())
    print(data['age'])

    pickle只在python本语言中能用
    java只认识json
    写程序只dump一次,load一次

    json文件的读取

    #导入模块
    import json
    # 将json对象转成字典 -> 进行解码
    with open("hm.json", "r", encoding="utf-8") as f:
        # 获取文件中数据 -> 字典
        new_dict = json.load(f)
        # 查看类型
        print(type(new_dict))  # <class 'dict'>
        # 获取名字
        print(new_dict["name"])
        # 获取年龄
        print(new_dict["age"])
        # 获取学号
        print(new_dict["no"])

    json文件的写入

    #导入模块
    import json
    # 定义一个字典
    my_dict = {"name": "老王", "age": 30, "no": "007"}
    # 将字典转成json -> 进行编码
    json_str = json.dumps(my_dict)
    # 打印json字符串
    print(type(json_str))  # <class 'str'>
    
    # 把json数据写入到文件中
    with open("hm.json", "w", encoding="utf-8") as f:
        f.write(json_str)

  • 相关阅读:
    TIME_WAIT和CLOSE_WAIT的区别
    shell备份脚本
    No package 'eventlog' found
    Linux下升级安装Python-3.6.2版本
    mysql的binlog安全删除的一种方法
    windows 清理 cbs.log 文件
    Linux crontab 查看所有用户的crontab任务
    java抽象类与接口回顾
    java类的回顾
    windows的MySQL安装
  • 原文地址:https://www.cnblogs.com/peiya/p/11994899.html
Copyright © 2011-2022 走看看