zoukankan      html  css  js  c++  java
  • python中序列化和反序列化

    1.字典的序列化与反序列化

    a.序列化:把python的数据类型转为str类型的过程
    b.反序列化:str的类型转为python的数据结构

    需要导入的包:
    import json
    import requests #在pychram 中进行包的导入安装file-->settings--->Project Interpreter

    示例:
    dict1 = {'name':'rzq','age':18}
    #序列化:dict -->str
    
    dict_str =json.dumps(dict1)
    
    print('序列化后的结果信息:')
    print(dict_str,type(dict_str))
    
    #反序列化:str --->dict
    
    str_dict =json.loads(dict_str)
    print('反序列化后的结果信息:
    ',str_dict,type(str_dict))

    结果:

    2.列表的序列化与反序列化

    '''列表的序列化与发序列化过程'''
    list1 = ['admin','pwd','测试小伙子',18]
    
    #序列化
    list_str = json.dumps(list1)
    print("序列化后的结果信息:
    ",list_str,type(list_str))
    
    #反序列化
    str_list = json.loads(list_str)
    print("反序列化后的结果信息:
    ",str_list,type(str_list))

    结果:

     3.元组的序列化与反序列化过程

    注意:元组经过序列化和反序列化后数据类型为列表,不再是元组

    tuple1 = ('a',1,'测试小伙子','msg')
    
    #序列化
    tuple_str = json.dumps(tuple1)
    print('序列化后的结果信息:
    ',tuple_str,type(tuple_str))
    
    #反序列化
    str_tuple = json.loads(tuple_str)
    print('字符串tuple_str反序列化后的内容为:{0},类型为:{1}
    '.format(str_tuple,type(str_tuple)))

    结果:

    4.文件的序列化与反序列化

    '''文件的序列化与反序列化'''
    
    '''
    注意:在进行序列化时,一定要先看返回来的数据是什么类型,如何直接是str类型,那么就不需要转化了
    
    '''
    r = requests.get(url='https://www.tianqiapi.com/api/?version=v6')
    # print(r.text,type(r.text))
    #对文件进行序列化-->就是把服务器端的响应数据写到文件中
    # print(json.dump(r.text,open('weather.json','w')),type(r.text))
    
    #对文件进行反序列化-->就是读取文件中的内容
    dict1 = json.loads((json.load(open('weather.json','r'))).encode('utf-8'))#先把文件中的数据进行反序列化,此时得到的结果是unicode,然后再次反序列化进行编码,使数据类型为字典类型就可以了
    print(dict1['city'])

    结果:

     



  • 相关阅读:
    常用的DOCS命令
    [51NOD1126]求递推序列的第n项(矩阵快速幂)
    [HDOJ2830]Matrix Swapping II(胡搞)
    [每天一道A+B]签到检测程序
    [HIHO1260]String Problem I(trie树)
    [HIHO1300]展胜地的鲤鱼旗(栈,dp)
    [HIHO1299]打折机票(线段树)
    [51NOD1087]1 10 100 1000(规律,二分)
    [POJ2002]Squares(计算几何,二分)
    [HDOJ1015]Safecracker(DFS, 组合数学)
  • 原文地址:https://www.cnblogs.com/renzhiqiang/p/11269319.html
Copyright © 2011-2022 走看看