• 【Python】json 格式转换 ① ( json 模块使用 | 列表转 json | json 转列表 | 字典转 json | json 转字典 )



    json 格式 字符串 与 Python 中的 字典 dict 和 列表 list 变量 可以无缝转换 ;

    • 调用 json.dumps 函数 可以将 Python 列表 / 字典 转为 json ;
    • 调用 json.loads 函数 ,可以将 json 转为 python 列表 / 字典 ;




    一、json 格式转换




    1、json 模块使用


    首先 , 导入 Python 内置的 json 模块 ;

    import json
    
    • 1

    然后 , 准备 python 数据 , 将数据放到 list 列表中 , 列表中的元素是 dict 字典 ;

    data = [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]
    
    • 1

    再后 , 调用 json.dumps 函数 , 将 列表 数据转为 json 字符串数据 ;

    json_str = json.dumps(data)
    
    • 1

    最后 , 调用 json.loads 函数 , 将 json 转为 python 数据 ;

    data = json.loads(json_str)
    
    • 1

    2、代码示例分析 - 列表转 json


    定义一个 Python 列表 , 列表中的元素是 dict 字典 ;

    data_list = [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]
    
    • 1

    打印上述列表的类型为 ;

    调用 json.dumps 函数 , 将上述 data_list 列表变量 转为 json 字符串 , 转换后的 json_str 变量 类型为 类型 , 值为 :

    [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]
    
    • 1

    调用 json.loads 函数 , 将 json_str 变量 , 也就是 json 字符串 , 转为 Python 列表变量 , 转换后的 data_list2 变量 类型为 , 变量值为 :

    [{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 12}]
    
    • 1

    代码示例 :

    """
    json 格式转换 代码示例
    """
    
    import json
    
    # I. 列表 转 json
    
    # 定义 Python 列表 , 列表中元素为 dict 字段
    data_list = [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]
    print(f"data_list 类型 : {type(data_list)} 值为 {data_list}")
    
    # 将列表转为 json
    json_str = json.dumps(data_list)
    # 打印 json 字符串结果
    print(f"json_str 类型 : {type(json_str)} 值为 {json_str}")
    
    # 将 json 转为 Python 列表数据
    data_list2 = json.loads(json_str)
    print(f"data_list2 类型 : {type(data_list2)} 值为 {data_list2}")
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    执行结果 :

    D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
    data_list 类型 : <class 'list'> 值为 [{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 12}]
    json_str 类型 : <class 'str'> 值为 [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]
    data_list2 类型 : <class 'list'> 值为 [{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 12}]
    
    Process finished with exit code 0
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述


    3、代码示例分析 - 字典转 json


    定义一个 Python 字典 , 字典中的键值对元素类型都是 str 字符串类型 ;

    data_dict = {"name": "Trump", "age": "80"}
    
    • 1

    打印上述 data_dict 变量 的类型为 ;

    调用 json.dumps 函数 , 将上述 data_dict 字典变量 转为 json 字符串 , 转换后的 json_str 变量 类型为 类型 , 值为 :

    {"name": "Trump", "age": "80"}
    
    • 1

    调用 json.loads 函数 , 将 json_str 变量 , 也就是 json 字符串 , 转为 Python 字典变量 , 转换后的 data_dict2 变量 类型为 , 变量值为 :

    {'name': 'Trump', 'age': '80'}
    
    • 1

    代码示例 :

    """
    json 格式转换 代码示例
    """
    
    import json
    
    # II. 字典 转 json
    
    data_dict = {"name": "Trump", "age": "80"}
    print(f"data_dict 类型 : {type(data_dict)} 值为 {data_dict}")
    
    # 将字典转为 json
    json_str = json.dumps(data_dict)
    # 打印 json 字符串结果
    print(f"json_str 类型 : {type(json_str)} 值为 {json_str}")
    
    # 将 json 转为 Python 字段数据
    data_dict2 = json.loads(json_str)
    print(f"data_dict2 类型 : {type(data_dict2)} 值为 {data_dict2}")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    执行结果 :

    D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
    data_dict 类型 : <class 'dict'> 值为 {'name': 'Trump', 'age': '80'}
    json_str 类型 : <class 'str'> 值为 {"name": "Trump", "age": "80"}
    data_dict2 类型 : <class 'dict'> 值为 {'name': 'Trump', 'age': '80'}
    
    Process finished with exit code 0
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

  • 相关阅读:
    [附源码]java毕业设计社区健康服务平台管理系统lunwen
    【GO语言基础】函数
    【数据结构】平衡二叉搜索树(AVL树)——AVL树的概念和介绍、AVL树的简单实现、AVL树的增删查改
    KingbbaseES V8R6集群维护案例之---集群之间数据迁移
    Android通信安全之HTTPS
    浅述AI视频智能分析技术及TSINGSEE视频智能解决方案
    推荐10个Vue 3.0开发的开源前端项目
    猿创征文|那一年
    【Java SE】类和对象
    FL Studio21免许可证完整版数字音频工作站(DAW)
  • 原文地址:https://blog.csdn.net/han1202012/article/details/131776778