博客
关于我
【Python基础】第十八篇 | JSON文件的处理
阅读量:527 次
发布时间:2019-03-07

本文共 2097 字,大约阅读时间需要 6 分钟。

JSON文件的处理

JSON文件也是一个文本文件,可以直接使用read()和write()方法去操作文件,但由于这两个方法不够方便,因此对JSON文件有自己独特的读取和写入方法。JSON文件常用于测试时,将测试数据定义为JSON文件格式,通过代码读取JSON文件,进行数据传参(参数化)。

JSON的介绍

JSON(JavaScript Object Notation,JavaScript对象表示)基于文本,是一种轻量级的数据交换格式,独立于语言。每种编程语言都可以使用JSON,因此它成为数据交换的标准格式之一。与其他格式(如XML)相比,JSON文件通常较小,数据传输效率更高。

JSON文件的语法

  • JSON文件的后缀是.json。
  • JSON文件的最外层要么是一个对象(类似于Python中的字典),要么是一个数组(类似于Python中的列表)。
  • 对象由键值对组成,每个键值对之间使用逗号分隔,最后一个值后面不需要逗号。
  • 字符串必须使用双引号。
  • JSON文件支持以下数据类型:
    • 数字类型:int、float
    • 字符串类型:str
    • 布尔类型:true、false
    • null类型:对应于Python中的None
  • JSON文件的书写

    以下是一个示例,展示了如何将数据写入JSON文件:

    {
    "name": "小明",
    "age": 18,
    "sex": "男",
    "hobby": ["听歌", "游戏", "购物", "吃饭", "睡觉", "打豆豆"],
    "address": {
    "country": "中国",
    "city": "上海"
    }
    }

    JSON文件的读取

    要读取JSON文件,可以按照以下步骤进行:

  • 导入json模块:

    import json
  • 打开文件并读取内容:

    with open('info.json', encoding='utf-8') as f:
    data = json.load(f)
  • 解析JSON数据:

    result = json.load(f)
    print(type(result)) # 输出结果类型
    print(result.get('name')) # 获取指定键的值
    print(result.get("age")) # 获取指定键的值
    print(result.get("address").get("city")) # 获取嵌套的值
  • JSON文件的写入

    要将Python数据写入JSON文件,可以按照以下步骤进行:

  • 导入json模块:

    import json
  • 打开文件并准备写入内容:

    with open('info2.json', 'w', encoding='utf-8') as f:
    json.dump(my_list, f)
  • 如果需要确保所有字符都能正确显示,可以使用ensure_ascii=False

    json.dump(my_list, f, ensure_ascii=False)
  • 如果需要添加缩进,可以使用indent参数:

    json.dump(my_list, f, ensure_ascii=False, indent=2)
  • 示例:提取测试数据

    以下是一个读取并提取JSON文件中用户名、密码和预期结果的示例:

    import json
    def read_data():
    new_list = []
    with open('info3.json', encoding='utf-8') as f:
    data = json.load(f)
    for i in data:
    new_list.append((i.get("desc"), i.get("username"), i.get("password"), i.get("expect")))
    return new_list
    print(read_data())

    JSON文件的结构

    以下是一个典型的JSON文件结构示例:

    [
    {
    "desc": "正确的用户名密码",
    "username": "admin",
    "password": "123456",
    "expect": "登录成功"
    },
    {
    "desc": "错误的用户名",
    "username": "root",
    "password": "123456",
    "expect": "登录失败"
    },
    {
    "desc": "错误的密码",
    "username": "admin",
    "password": "123123",
    "expect": "登录失败"
    }
    ]

    总结

    通过以上方法,可以方便地读取和写入JSON文件。JSON文件在数据交换中非常有用,尤其是在前后端通信时。掌握这些技能可以帮助您更高效地处理数据,同时也可以简化代码和提高开发效率。

    转载地址:http://ynunz.baihongyu.com/

    你可能感兴趣的文章
    MySQL 常见的 9 种优化方法
    查看>>
    MySQL 常见的开放性问题
    查看>>
    Mysql 常见错误
    查看>>
    mysql 常见问题
    查看>>
    MYSQL 幻读(Phantom Problem)不可重复读
    查看>>
    mysql 往字段后面加字符串
    查看>>
    mysql 快照读 幻读_innodb当前读 与 快照读 and rr级别是否真正避免了幻读
    查看>>
    MySQL 快速创建千万级测试数据
    查看>>
    mysql 快速自增假数据, 新增假数据,mysql自增假数据
    查看>>
    MySql 手动执行主从备份
    查看>>
    Mysql 批量修改四种方式效率对比(一)
    查看>>
    mysql 批量插入
    查看>>
    Mysql 报错 Field 'id' doesn't have a default value
    查看>>
    MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
    查看>>
    Mysql 拼接多个字段作为查询条件查询方法
    查看>>
    mysql 排序id_mysql如何按特定id排序
    查看>>
    Mysql 提示:Communication link failure
    查看>>
    mysql 插入是否成功_PDO mysql:如何知道插入是否成功
    查看>>
    Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
    查看>>
    mysql 数据库中 count(*),count(1),count(列名)区别和效率问题
    查看>>