【Python】使用Python读取JSON文件中的内容

一、JSON文件简介

在自动化测试过程中,会将部分数据保存到JSON文件中。

JSON文件有以下特点:

  • JSON是存储和交换文本信息的语法,类似XML。
  • JSON比XML更小、更快、更易解析 JSON是轻量级的文本数据交换格式。
  • JSON是轻量级的文本数据交换格式。
  • JSON独立于语言
  • JSON具有自我描述性、更易理解。

JSON的语法规划如下:

  • JSON数据用大括号括起来。
  • 数据在“名称/值”对中,名称和值用冒号分隔,类似Python中的字典。
  • 名称必须用双引号括起来,值是否需要双引号引起来要视值的类型而定。
  • 数据由逗号分隔。

JSON数据示例:{“name”:“storm”,:age":30}

JSON模块提供了四个功能:

  • dumps-将字典转换为字符串。
  • dump - 将字典转换为字符串,并写入JSON文件中。
  • loads-将字符串转换为字典。
  • load - 将字典转换为数据类型。

二、借助Python处理JSON文件

1、读取字典类型的JSON文件

首先创建名为“login_account.json"的文件,用来保存某个系统的登陆账号信息,内容如下:

{
  "user1":{"name":"tom","password":"12345"},
  "user2":{"name":"jon","password":"123456"}
}

然后通过脚本读取该文件内容:

import json
file = "login_account.json"

with open(file,'r') as f:
    users = json.load(f)

for user in users:
    name = users[user]['name']
    password = users[user]['password']
    print(name,password)

运行结果如下:
在这里插入图片描述

2、读取列表类型的JSON文件

首先创建名为“myarray.json"的文件,用来保存某个系统的登陆账号信息,内容如下:

[
  {
    "name":"tom",
    "age":30
  },
  {
    "name":"jon",
    "age":22
  }
]

然后通过脚本读取该文件内容:

import json
file = "myarray.json"

with open(file,'r') as f:
    ss = json.load(f)

for s in ss:
    print(s)
    print(s["name"])
    print(s["age"])

运行结果如下:
在这里插入图片描述

3、封装读取JSON文件的函数

为了简化操作,封装读取JSON文件的函数,支持解析两层的JSON文件:

import json

def parse_json(file,key1,key2):
    mylist=[]
    with open(file,'r',encoding='utf8') as f:
        data= json.load(f)

        for i in data:
            mylist.append((data[i][key1],data[i][key2]))
        return mylist

if __name__ == '__main__':
    account_info = parse_json('login_account.json','name','password')
    print(account_info)

运行结果如下:
在这里插入图片描述

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是四个Python自动化测试脚本的示例: 1. Selenium Web自动化测试脚本: ``` from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.google.com") assert "Google" in driver.title elem = driver.find_element_by_name("q") elem.send_keys("Python") elem.submit() assert "No results found." not in driver.page_source driver.quit() ``` 2. API自动化测试脚本: ``` import requests url = 'https://jsonplaceholder.typicode.com/posts' data = {"title": "foo", "body": "bar", "userId": 1} response = requests.post(url, json=data) assert response.status_code == 201 assert response.json()["title"] == "foo" ``` 3. 数据库自动化测试脚本: ``` import sqlite3 conn = sqlite3.connect('example.db') cursor = conn.cursor() # Create table cursor.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''') # Insert a row of data cursor.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)") # Save (commit) the changes conn.commit() # Query the database cursor.execute("SELECT * FROM stocks WHERE symbol='RHAT'") rows = cursor.fetchall() assert len(rows) == 1 # Close the connection conn.close() ``` 4. GUI自动化测试脚本: ``` import pyautogui # Click on the Start button start_button = pyautogui.locateOnScreen('start_button.png') assert start_button is not None start_button_center = pyautogui.center(start_button) pyautogui.click(start_button_center) # Type some text in Notepad notepad_icon = pyautogui.locateOnScreen('notepad_icon.png') assert notepad_icon is not None notepad_icon_center = pyautogui.center(notepad_icon) pyautogui.click(notepad_icon_center) pyautogui.typewrite('Hello, World!') # Save the file file_menu = pyautogui.locateOnScreen('file_menu.png') assert file_menu is not None file_menu_center = pyautogui.center(file_menu) pyautogui.click(file_menu_center) save_as = pyautogui.locateOnScreen('save_as.png') assert save_as is not None save_as_center = pyautogui.center(save_as) pyautogui.click(save_as_center) pyautogui.typewrite('test.txt') save_button = pyautogui.locateOnScreen('save_button.png') assert save_button is not None save_button_center = pyautogui.center(save_button) pyautogui.click(save_button_center) ``` 以上是四个Python自动化测试脚本的简单示例。希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值