• 【python学习】基础篇-常用模块-


    Python中的json模块用于处理JSON数据,提供了将Python对象转换为JSON字符串的方法(dumps),以及将JSON字符串解析为Python对象的方法(loads)。

    以下是json模块的一些常用方法:

    1、将Python对象obj转换为JSON字符串。

    json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,
     			allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
    
    • 1
    • 2

    可以设置一些可选参数,

    skipkeys(bool):
    默认为False,如果设置为True,则字典中缺少键的项将被跳过,而不是引发KeyError异常。
    ensure_ascii(bool):
    默认为True,如果设置为True,则输出的JSON字符串只包含ASCII字符。如果设置为False,则输出的JSON字符串可以包含非ASCII字符。
    check_circular(bool):
    默认为True,如果设置为True,则在检测到循环引用时会引发TypeError异常。如果设置为False,则不检查循环引用。
    allow_nan(bool):
    默认为True,如果设置为True,则允许NaN、Infinity和-Infinity这些特殊浮点值。如果设置为False,则不允许这些特殊浮点值。
    cls(class):可选参数,
    指定一个可调用对象来构造结果字符串。通常不需要使用此参数。
    indent(int):可选参数,
    指定缩进空格数。如果设置了该参数,则生成的JSON字符串将按照指定的缩进格式进行格式化。
    separators(str):可选参数,
    指定分隔符。如果设置了该参数,则生成的JSON字符串将按照指定的分隔符进行格式化。
    default(callable):可选参数,
    指定一个函数,当遇到无法序列化的对象时,将调用该函数并返回其结果。
    sort_keys(bool):可选参数,
    指定是否对字典的键进行排序。如果设置为True,则生成的JSON字符串中的字典键将按字母顺序排序。
    **kw:可选参数,
    用于传递其他关键字参数。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    示例如下:

    import json
    
    data = {
        "name": "张三",
        "age": 30,
        "city": "北京"
    }
    
    json_str = json.dumps(data, ensure_ascii=False)
    print(json_str)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2、将JSON字符串s解析为Python对象

    json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, 
    			parse_constant=None, object_pairs_hook=None, **kw)
    
    • 1
    • 2

    可以设置一些可选参数,

    s(str)
    需要解析的JSON字符串。
    encoding(str, optional)
    指定编码方式,默认为None。
    cls(class, optional)
    指定解析后的对象类型,默认为None。
    object_hook(callable, optional)
    指定一个函数,用于转换字典中的值,默认为None。
    parse_float(callable, optional)
    指定一个函数,用于解析浮点数,默认为float()。
    parse_int(callable, optional)
    指定一个函数,用于解析整数,默认为int()。
    parse_constant(callable, optional)
    指定一个函数,用于解析常量,默认为None。
    object_pairs_hook(callable, optional)
    指定一个函数,用于转换字典中的键值对,默认为None**kw
    可选参数,用于传递其他关键字参数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    示例如下

    import json
    
    json_str = '{"name": "张三", "age": 30, "city": "北京"}'
    data = json.loads(json_str)
    print(data)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、将Python对象obj序列化为JSON字符串并写入文件fp

    json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True,
    	 cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
    
    • 1
    • 2

    可以设置一些可选参数
    如indent表示缩进空格数等。
    示例如下

    import json
    
    data = {
        "name": "张三",
        "age": 30,
        "city": "北京"
    }
    
    with open('data.json', 'w') as f:
        json.dump(data, f, ensure_ascii=False)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4、从文件fp中读取JSON字符串并解析为Python对象

    json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, 
    			parse_constant=None, object_pairs_hook=None, **kw)
    
    • 1
    • 2

    可以设置一些可选参数,
    同上
    示例如下

    import json
    
    with open('data.json', 'r') as f:
        data = json.load(f)
        print(data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    【CPP】CMake
    傻白入门芯片设计,RDL/Interposer/EMIB/TSV(三)
    OK3568 forlinx系统编译过程及问题汇总
    数据结构(3.9_1)——特殊矩阵的压缩存储
    沉睡者IT - 什么是Web3.0?
    vue-router路由知识
    Nginx+rtmp+ffmpeg搭建视频转码服务
    双极性SPWM、单极性SPWM和单极倍频SPWM的仿真结果对比
    ☆打卡算法☆LeetCode 28、实现 strStr() 算法解析
    nodeJS--axios和fetch
  • 原文地址:https://blog.csdn.net/weixin_42133116/article/details/134536623