• 细说【json&pickle】dumps,loads,dump,load的区别


    1 json.dumps()

    json.dumps()是将字典类型转化成字符串类型。

    import json
     
    name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} 
    jsObj = json.dumps(name_emb)    
     
    print(name_emb)
    print(jsObj)
    

    2 json.dump()

    json.dump()用于将dict类型的数据转成str,并写入到json文件中

    import json  
    
    name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}  
    
    emb_filename = ('/home/cqh/faceData/emb_json.json')  
    
    # solution 1
    jsObj = json.dumps(name_emb)    
    with open(emb_filename, "w") as f:  
        f.write(jsObj)  
        f.close()  
    
    # solution 2   
    json.dump(name_emb, open(emb_filename, "w"))
    

    3 json.loads()

    json.loads()将字符串类型转化成字典类型

    import json
    
    name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} 
    
    jsDumps = json.dumps(name_emb)    
    
    jsLoads = json.loads(jsDumps) 
    
    print(name_emb)
    print(jsDumps)
    print(jsLoads)
    

    4 json.load()

    json.load()用于从json文件中读取数据。

    # json_load.py 
    strList = json.load(with open("listStr.json",mode='r')) 
    print strList 
    print strDict 
    # {u'city': u'u5317u4eac', u'name': u'u5927u5218'} 
    
    • pickle常用操作参考json

    • 格式要求:

      • 只能包含int/ str/ list/ dict/ bool/float 不存在元组/集合
      • 最外层必须是一个列表或字典
      • 在json中如果有字符串,必须是双引号"json中的字符串"
      • 真假小写true/false
    • 字典或者列表中存在中文,序列化的时候或转为UNcode格式,如果想保存中文就需要进行以下操作

      v1=[1,2,3,4,'2','大牛']
      val = json.dumps(v1,ensure_ascii=False)
      print(val)     #[1, 2, 3, 4, "2", "大牛"]
      
    • json:优点:所有语言通用,缺点:只能序列化部分数据类型;不能连续load多次

    • pickle;可以序列化多有数据,但是序列化之后只有python识别,能连续load多次

    总结: dump与json转化时可以结合文件操作,dumps与jsons不能.

  • 相关阅读:
    【NX二次开发】难点清单
    【NX二次开发】Block UI 目录
    Open C
    【NX二次开发】缝合片体例子UF_MODL_create_sew
    【NX二次开发】拉伸的偏置方向猜想与验证
    【NX二次开发】拉伸面、拉伸封闭曲线成片体UF_MODL_create_extrusion
    【NX二次开发】创建有界平面UF_MODL_create_bplane
    【VBA】一些判断
    【VBA】日期时间
    【VBA】单元格插入图片,单元格删除图片
  • 原文地址:https://www.cnblogs.com/bigox/p/10809226.html
Copyright © 2020-2023  润新知