学习Json库

本文最后更新于:2024年8月11日 晚上

参考资料

Json model

  • dumps
    将Python对象转换成Json字符串

    1
    2
    3
    4
    from json import dumps
    example_dict = {"id":"114514","name":"jinzhi","depart":"Nya"}
    # indent是一个格式化参数,能让转换后打印结果更好看,也可以不加
    json_date = dumps(example_dict,indent=4)
    • Python JSON
      dict object
      list, tuple array
      str string
      int, float, int & float-derived Enums number
      TRUE TRUE
      FALSE FALSE
      None null
  • dump
    将Python对象写入Json文件

    1
    2
    3
    4
    5
    from json import dump
    example_dict={"name":"mimiko","age":16,"sex":"Unknown"}
    with open("test.json","w") as f:
    # 第二个参数是文件指针
    dump(example_dict,f)
  • loads
    操作字符串,将一串满足json格式的字符串转换成对应的Python对象
    如将‘{’name’:'tella','age':18}’转换成字典对象{u’name’=‘tella’,u’age’=18}

    • loads(s,objects_hook,object_pairs_hook)部分参数

      • s
        传入的字符串
      • objects_hook
        自定义解码器,意味着你可以通过自定义类的方式把json文件转换成你的格式(即对dict进一步处理)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      import json


      class custome_decode():
      def __init__(self,name=None,age=None,gender=None):
      self.name = name
      self.age = age
      self.gender = gender
      def trans_to_Json(self):
      return {'name':name,'age':age,'gender':gender}
      @staticmethod
      def loading_json(dct):
      if isinstace(dct,dict):
      return custome_decode(
      dct.get("name",None)
      dct.get("age",None)
      dct.get("gender",None))
      print("ERROR:传入的不是字典")
      return dct
      if __name__ == "__main__":
      test_json = {"name":'tella',"age":18}
      result = jsons.load(test_json,object_hooks=custome_decode.loading_json)

      这个类使用了类对象来存储文件信息,这个对象还支持把信息转换成Json格式,比单纯的字典高效一些

      • object_pairs_hook
        以有序元组对组成列表的形式返回Json内容,优先级高于object_hooks
  • load
    操作文件流,功能跟loads一样,把文件对象的内容转换成Python对象


学习Json库
https://qlozin.top/2023/01/10/About Json model/
作者
Qlozan
发布于
2023年1月11日
更新于
2024年8月11日
许可协议