zoukankan      html  css  js  c++  java
  • json:dumps/loads & pickl

    ---------------------------模块基础知识补充------------------------------

    在第180节课路径的引入是python更新的原因吗???

    • **print(_ file _) :file双下划线------->表明执行当前任务的路径 **

      #打印当前目录的上一级目录
      import os
      v1 = os.path.dirname(__file__)
      print(v1)
      

    关于json函数的补充

    • json中关于python的对照表

    • image-20200726103226403

    • 当字典、列表、元组序列化中出现的汉字,如何让汉字完全的表现出来

      v = {'k1':'yang','k2':'杨子列'}
      import json
      val = json.dumps(v,ensure_ascii=False) #引入ensure_ascii=False
      print(val)
      
    • 注意区分以下结果关于元组的

      v = ('杨子列','杨驰')
      import json
      val = json.dumps(v)
      print(val)
      
      v = ('杨子列','杨驰',[1,2,3]) #元组是可以做json的容器的,但作为容器中一个元素会被当做列表
      import json
      val = json.dumps(v)
      print(val)
      
      v = [('杨子列','杨驰')]
      import json
      val = json.dumps(v)
      print(val) 
      #此处生成的元组是一个列表
      
    • json.dump

      • 序列化后并写入一个指定的文件

        f = open('x.txt',mode='w',encoding ="utf-8")
        v = ('杨子列','杨驰',[1,2,3])
        import json
        val = json.dump(v,f)
        print(val)
        
    • json.load

      • 将文件中的内容反序列化

        f = open('x.txt',mode='r',encoding ="utf-8")
        import json
        val = json.load(f)
        f.close()
        print(val)
        
        

    json和pickle

    • json, 优点:所有语言通用; 缺点:只能序列化基本内容

    • pickle,优点:python中所有东西均能被序列化(socket对象除外),缺点:不可读,序列化的内容只有python认识

    • 利用pickle进行序列化与樊序列化

    #利用pickle模块对集合进行序列化与反序列化
    v = {1,2,3,3}
    import pickle
    val = pickle.dumps(v)
    print (val)
    data = pickle.loads(val)
    print(data)
    #元组作为一个元素同样是可行的
    v = (1,2,3,3,[1,2,3])
    import pickle
    val = pickle.dumps(v)
    print (val)
    data = pickle.loads(val)
    print(data)
    
    • **利用pickl对函数进行序列化与反序列化 **

      def func():
          print("yang")
      import pickle
      v1 = pickle.dumps(func)
      v2 = pickle.loads(v1)
      print(v1,v2,sep = "
      ") #sep:同时打印两个对象时进行换行
      
      • pickle的dump和loads

        import pickle
        v = {1,2,3,4}
        print(pickle.dumps(v)) #此处呈现的是二进制,因此在读文件时的是二进制的
        f = open('x.txt',mode="wb")
        v1 = pickle.dump(v,f)
        print(v1)
        f = open('x.txt',mode="rb")
        v2 = pickle.load(f)
        print(v2)
        
  • 相关阅读:
    CSS简介
    jQuery学习笔记一
    JavaScript基础testDemo
    JavaScript知识点记录
    js实现404页面倒计时跳转 猫
    html5动画之等待加载动画 猫
    开发jquery插件小结 猫
    jquery做一个小的轮播插件有BUG,后续修改 猫
    js倒计时跳转jquery插件版 猫
    nodejs安装配置 猫
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/13379865.html
Copyright © 2011-2022 走看看