zoukankan      html  css  js  c++  java
  • json & pickle

    json & pickle


    json
    :一般用于不同的程序语言之间的序列化与反序列化,它的核心就是字符串,是字符串和python的基本数据类型之间的转换

        json模块提供了四个功能:dumps, dump(序列化, 存), loads(反序列化, 读), load

    #json本身就是字符串
    import json
    # 将字符串解释成了字典,更方便操作  里面必须是双引号
    # json.loads用于将字典,列表,元组形式的字符串,转换成相应的字典,列表,和元组
    s = '{"status":1002,"desc":"invilad-citykey"}'
    # 将字符串解释成了列表,更方便操作
    l = '[11,22,33,44]'
    result = json.loads(s)
    print(result, type(result))
    '''
    {'status': 1002, 'desc': 'invilad-citykey'} <class 'dict'>
    '''
    
    result1 = json.loads(l)
    print(result1,type(result1))
    '''
    [11, 22, 33, 44] <class 'list'>
    '''
    
    
    # json.dumps将python基本数据类型转换成所有程序语言都认识的字符串,不强制双引号
    user_list = ['alex', "eric", 'tony']
    s = json.dumps(user_list)
    print(s, type(s))
    '''
    ["alex", "eric", "tony"] <class 'str'>
    '''
    
    # json.dump 将python基本数据类型转换成所有程序语言都认识的字符串类型,再写入文件
    dic = {'k1': 123, 'k2': 'v2'}
    json.dump(dic, open('db', 'w'))
    
    
    # json.load 从文件中字符串读出再转换成python的基本数据类型
    r = json.load(open('db', 'r'))
    print(r, type(r))
    '''
    {'k1': 123, 'k2': 'v2'} <class 'dict'>
    '''
    
    
    #注意事项 元组变转换成了列表,因为()这种不是通用的数据类型,列表跟字典为通用数据类型
    n = (11, 22, 33, 44, 'alex')
    import json
    s = json.dumps(n)
    print(s,type(s))
    '''
    [11, 22, 33, 44, "alex"] <class 'str'>
    '''
    

      

    pickle:专用于python的基本数据类型和一种只有python能认识的序列之间的转换,这种序列常常是bytes类型。pickle强大在于可以将代码,类序列化

        pickle模块提供了四个功能:dumps, dump(序列化, 存), loads(反序列化, 读), load 

    import pickle
    
    data = {"k1": 123, "k2": 'Hello'}
    
    # pickle.dumps 将数据通过特殊的形式转换为只有python特有的类型
    result = pickle.dumps(data)
    print(result, type(result))
    '''
    b'x80x03}qx00(Xx02x00x00x00k1qx01K{Xx02x00x00x00k2qx02Xx05x00x00x00Helloqx03u.' <class 'bytes'>
    '''
    
    # pickle.dump 将数据通过特殊的形式转换为只有python特有的类型,并写入文件
    with open('dbb.txt', 'wb') as f:
        pickle.dump(data, f)
    
    # pickle.loads 将python特有的类型还原成原数据
    new_data = pickle.loads(result)
    print(new_data, type(new_data))
    '''
    {'k1': 123, 'k2': 'Hello'} <class 'dict'>
    '''
    
    # pickle.load 从文件中读出只有python特有的类型还原成原数据
    with open('dbb.txt', 'rb') as f:
        new_data = pickle.load(f)
        print(new_data, type(new_data))
    '''
    {'k1': 123, 'k2': 'Hello'} <class 'dict'>
    '''
    

      

  • 相关阅读:
    ubuntu下查看环境变量
    ubuntu关闭自动更新、打开 ubuntu 的 apport 崩溃检测报告功能
    Ubuntu 配置AP总结
    ubuntu 12.04亮度无法调节和无法保存屏幕亮度解决办法(echo_brightness)
    Ubuntu 13.04 双显卡安装NVIDIA GT 630M驱动
    Linux下添加硬盘,分区,格式化详解
    Eclipse启动分析
    “蚁族” 的生活方式画像
    Ubuntu下的防火墙
    Ubuntu下的杀毒
  • 原文地址:https://www.cnblogs.com/wuwen19940508/p/6923631.html
Copyright © 2011-2022 走看看