zoukankan      html  css  js  c++  java
  • Python json库中load、loads、dump、dumps的区别与用法

    1 json.loads()

    json格式的数据转化为字典类型

    data_json = '{"msg": "登录成功", "code": "10001", "data": null, "status":1}'
    data_dict = json.loads(data_json, encoding="utf-8")
    

      

    这个时候,如果使用 eval(data_json) 将会报错。

    因为这个json格式的数据中,存在python中没有的数据类型:null

    如果没有null,eval方法是可以实现将数据转化为字典类型。

    NameError: name 'null' is not defined

    所以,python中要将json格式的数据转化为字典型,就用到:loads。

    2 json.load()

     从文件中读取json类型的数据,并转化为字典类型

    data_json = '{"msg": "登录成功", "code": "10001", "data": null, "status":1}'
    with open("json_file.txt", mode="r", encoding="utf-8") as file:
        date_dict = json.load(file)
    

      

    3 json.dumps()

    将Python中特定类型进行字符串化操作,即转换为json格式的数据

    注意:字典、列表等都可以进行字符串话操作,变为json格式。

    如果存在中文,不使用【ensure_ascii=False】,写入文件时,中文会被编码。

    Python中的None对应Json中的null

    one_dict = {"name": "菲菲", "age": 18, "money": None}
    one_str = str(one_dict)
    one_json = json.dumps(one_dict)
    two_json = json.dumps(one_dict, ensure_ascii=False)
    

      

    one_tuple = ["菲菲", 18, None]
    one_str = str(one_tuple)
    one_json = json.dumps(one_tuple)
    two_json = json.dumps(one_tuple, ensure_ascii=False)
    

      

    4 json.dump()

    将字典类型转化为json字符串格式,写入到文件中

    one_dict = {"name": "字典型", "age": 18, "money": None}
    with open("json_file.txt", mode="a",encoding="utf-8") as file:
        json.dump(one_dict, file, ensure_ascii=False)
    
    one_tuple = ["菲菲", 18, None]
    with open("json_file.txt", mode="a", encoding="utf-8") as file:
        json.dump(one_tuple, file, ensure_ascii=False)
    

    看下面示例代码以及运行结果:

    indent可以美化格式。

    one_dict = [{"Date": "8月17日", "Location": "图书馆", "Price": 0.00}, {"Date": "8月18日", "Location": "图书馆", "Price": None}]
    with open("write_json.txt", mode="a", encoding="utf=8") as one_file:
        json.dump(one_dict, one_file, ensure_ascii=False, indent=2)
    

    总结:

    loads  将json格式的数据转化为dict

    dumps  将字典、列表t等类型的数据转化成json格式

    load  读取json格式文件,并返回dict

    dump  将字典、列表等格式的数据转化为json格式,写入文件

    试了一下,

    load,loads好像是只能转化成为dict。(反序列化,流——对象)

    dump,dumps可以将列表,字典数据转化为json格式。(序列化,对象——可保存或可传输格式)

    单词后面有s,都是对文件操作。

  • 相关阅读:
    pygame 笔记-7 生命值/血条处理
    pygame 笔记-6 碰撞检测
    pygame 笔记-5 模块化&加入敌人
    pygame 笔记-4 代码封装&发射子弹
    tk.mybatis通用插件updateByPrimaryKeySelective无法自动更新ON UPDATE CURRENT_TIMESTAMP列的解决办法
    pygame 笔记-3 角色动画及背景的使用
    pygame 笔记-2 模仿超级玛丽的弹跳
    pygame 笔记-1 按键控制方块移动
    mysql技巧:如果记录存在则更新/如果不存在则插入的三种处理方法
    mac上mysql8.0以tar.gz方式手动安装
  • 原文地址:https://www.cnblogs.com/jszfy/p/11306395.html
Copyright © 2011-2022 走看看