Phthon3 学习记录-0613

List(列表)、Tuple(元组)、Set(集合)和 Dictionary(字典)

在接口自动化测试中,List(列表)、Tuple(元组)、Set(集合)和 Dictionary(字典)这些数据结构都有各自独特的用途。以下通过一个简单的接口自动化测试示例来展示它们的用法及区别。

假设我们正在测试一个获取用户信息的接口,接口返回的数据类似如下:

{"users": [{"id": 1,"name": "Alice","email": "alice@example.com"},{"id": 2,"name": "Bob","email": "bob@example.com"}]
}
List(列表)

列表是有序且可变的。在接口自动化中,常用于存储一系列相关的数据,比如接口返回的多个用户信息。

import requestsdef test_get_users():response = requests.get('http://example.com/api/users')if response.status_code == 200:data = response.json()users_list = data.get('users', [])# 遍历列表获取每个用户信息for user in users_list:print(f"User ID: {user['id']}, Name: {user['name']}, Email: {user['email']}")# 修改列表中的数据(假设接口支持更新用户信息)if users_list:users_list[0]['name'] = 'UpdatedAlice'print(f"Modified User: {users_list[0]}")

Tuple(元组)
元组也是有序的,但它是不可变的。在接口测试中,可用于存储一些固定不变的数据,例如接口的固定请求头

import requestsdef test_get_users_with_fixed_headers():fixed_headers = ('Content-Type', 'application/json')response = requests.get('http://example.com/api/users', headers=dict([fixed_headers]))if response.status_code == 200:print("Request successful with fixed headers")
Set(集合)

集合是无序且不包含重复元素的。在接口自动化中,可用于检查接口返回的数据中是否存在重复的元素,比如重复的用户 ID。

import requestsdef test_check_unique_user_ids():response = requests.get('http://example.com/api/users')if response.status_code == 200:data = response.json()user_ids = set()users_list = data.get('users', [])for user in users_list:user_id = user['id']if user_id in user_ids:print(f"Duplicate user ID: {user_id}")else:user_ids.add(user_id)print(f"Unique user IDs: {user_ids}")
Dictionary(字典)

字典是无序的键值对集合。在接口自动化中,广泛用于处理接口的请求参数、响应数据等,因为它可以方便地通过键来访问值。

import requestsdef test_get_user_by_id():user_id = 1request_params = {'id': user_id}response = requests.get('http://example.com/api/user', params=request_params)if response.status_code == 200:user_data = response.json()print(f"User Name: {user_data.get('name')}, Email: {user_data.get('email')}")
#!/usr/bin/python3dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值
        区别总结
  • List(列表):有序、可变,适用于需要顺序存储且可能需要修改的数据,如接口返回的多个对象列表。
    • a = [1, 2, 3, 4, 5, 6]
  • Tuple(元组):有序、不可变,适合存储固定不变的数据,如固定的请求头信息。
    • tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
  • Set(集合):无序、不重复,用于需要确保元素唯一性的场景,比如检查接口返回数据中是否有重复值。
    • sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}

      print(sites)   # 输出集合,重复的元素被自动去掉
  • Dictionary(字典):无序的键值对,便于通过键快速查找对应的值,常用于处理请求参数和解析响应数据。
    • data = {
              "username": "test_user",
              "password": "test_password"
          }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UVa12298 3KP-BASH Project

UVa12298 3KP-BASH Project 题目链接题意输入格式输出格式 分析AC 代码 题目链接 UVa12298 3KP-BASH Project 题意 摘自 《算法竞赛入门经典:训练指南》刘汝佳,陈锋著。有删改。 你的任务是为一个假想的 3KP 操作系统编写一个简单的 Bash 模拟器。由于操…

云打包生成的ipa上传构建版本经验分享

在上架ios应用,在苹果开发者中心操作的时候,需要提供一个构建版本,如下图所示: 点击蓝色加号,添加构建版本,但是点击蓝色加号后,并没有构建版本可以选。 原因是需要下载下面它推荐的工具来上传…

ESP32的spi通讯(Arduino)

目录 一.基本配置 1.esp32-wroom-32引脚图 2.接线方式 3.Arduino芯片选择和库文件 3.1Arduino配置(2.0.11) 3.2 下载ESP32SPISlave库(0.6.8)文件 二、代码编写 1.主机代码 2.从机代码 3.注意事项 三、运行效果 一.基本…

Spring-rabbit重试消费源码分析

在集成RabbitMQ与Spring Boot 3.1.x时,RetryOperationsInterceptor 是实现消息重试机制的关键组件。这里将深入分析 RetryOperationsInterceptor 的工作原理,尤其是在消费者消费失败时的行为,并结合底层源码进行详解。 一、配置解析 首先&a…

如何使用JacksonTypeHandler处理mysql json字符串转List对象的问题

在使用mysql5.7或更高版本时&#xff0c;json类型字段应用场景越来越多&#xff0c;对于普通的对象或者List<Integer>、List<String>这些基础类型&#xff0c;jacksonTypeHandler都能很好的处理&#xff0c;如下&#xff1a; 1、定义一个person对象 import com.f…

华为云Flexus+DeepSeek征文 | 基于Dify构建股票分析助手

华为云FlexusDeepSeek征文 | 基于Dify构建AI 图片生成应用 一、构建股票分析助手前言二、构建股票分析助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建股票分析助手实战3.1 配置Dify环境3.2 配置Dify工具3.3 创建股票分析助手3.4 使用股票分析助…

【0.1 漫画计算机组成原理】

🖥️ 漫画计算机组成原理 🎯 学习目标:深入理解计算机硬件基础,为后续Java编程和性能优化打下坚实基础 📋 目录 CPU架构与指令集内存层次结构冯诺依曼架构与哈佛架构总线系统与IO设备计算机性能分析实际应用场景🎭 漫画引言 小明: “为什么我的Java程序有时候跑得飞…

pytorch 实战二 CNN手写数字识别

系列文章目录 文章目录 系列文章目录前言一、torchvision.datasets1. 数据下载2. 数据分批次传入 二、网络1. 网络搭建2. 训练3.测试 完整代码三、保存模型与推理&#xff08;inference&#xff09;模型保存推理鸣谢 前言 手写数字识别&#xff0c;就是要根据手写的数字0~9&…

[Godot] C#读取CSV表格创建双层字典实现本地化

最近研究了一下本地化&#xff0c;给大家用简单易懂的方式说明我是怎么实现的&#xff0c;使用CSV表格填写翻译&#xff0c;然后在Godot中读取为字典 表格填写 首先&#xff0c;我们表格可以按照下面这种格式填写 idzhenjaruesdefrapple苹果appleリンゴяблокоmanzanaA…

Spark 之 Subquery

各类 Subquery src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala /*** Evaluates to `true` if `values` are returned in `query`s result set.*/ case class InSubquery(values: Seq[Expression], query: ListQuery)extends Predicate with Une…

3.1.3_栈的链式存储实现

知识总览&#xff1a; 链栈定义&#xff1a; 头插法建立单链表&#xff1a; 每次要插入一个元素的时候&#xff0c;总是把该元素插在头节点之后的位置&#xff0c;如果规定只能在单链表的链头一端进行操作即为进栈操作 每次删除一个元素的时候&#xff0c;规定只能在单链表…

华为OD机试_2025 B卷_字符串重新排列(Python,100分)(附详细解题思路)

题目描述 给定一个字符串s&#xff0c;s包括以空格分隔的若干个单词&#xff0c;请对s进行如下处理后输出&#xff1a; 1、单词内部调整&#xff1a;对每个单词字母重新按字典序排序 2、单词间顺序调整&#xff1a; 1&#xff09;统计每个单词出现的次数&#xff0c;并按次数降…

http的缓存问题

一句话概括&#xff1a;浏览器请求资源的时候&#xff0c;会首先检查本地是否有缓存&#xff0c;减少向服务器请求的次数 一、缓存类型&#xff1a; 1. 强缓存&#xff08;本地缓存&#xff09;&#xff1a;直接读本地&#xff0c;不发请求 控制方式&#xff1a; ① Cache-C…

【网络安全】SRC漏洞挖掘思路/手法分享

文章目录 Tip1Tip2Tip3Tip4Tip5Tip6Tip7Tip8Tip9Tip10Tip11Tip12Tip13Tip14Tip15Tip16Tip17Tip18Tip19Tip20Tip21Tip22Tip23Tip24Tip25Tip26Tip27Tip28Tip29Tip30Tip1 “复制该主机所有 URL”:包含该主机上的所有接口等资源。 “复制此主机里的链接”:包括该主机加载的第三…

「Linux中Shell命令」Shell常见命令

知识点及案例解析 1. who 命令 功能:显示当前登录系统的用户信息,包括用户名、终端、登录时间、IP等。 案例: who输出示例: root tty1 2025-06-13 19:42 root pts/0 2025-06-13 19:45 (192.168.226.1)解析: 显示两个用户登录信息: 第一列(用…

StampedLock入门教程

文章目录 一、理解“戳” (Stamp)二、为什么 StampedLock 能提高读性能&#xff1f;秘密在于“乐观读”StampedLock性能对比性能对比结果图 总结 StampedLock完整演示代码对代码的疑问之处问题一&#xff1a;为什么 demonstrateOptimisticReadFailure 中写线程能修改成功&#…

基于云计算的振动弦分析:谐波可视化与波动方程参数理解-AI云计算数值分析和代码验证

振动弦方程是一个基础的偏微分方程&#xff0c;它描述了弹性弦的横向振动。其应用范围广泛&#xff0c;不仅可用于模拟乐器和一般的波动现象&#xff0c;更是数学物理以及深奥的弦理论中的重要基石。 ☁️AI云计算数值分析和代码验证 振动弦方程是描述固定两端弹性弦横向振动的…

Qt .pro配置gcc相关命令(三):-W1、-L、-rpath和-rpath-link

目录 1.Linux 动态库相关知识 1.1.动态库查找路径 1.2.查看程序依赖的动态库 1.3.修改动态库查找路径的方法 1.4.动态链接器缓存管理 2.-Wl参数 3.-L选项&#xff08;编译时路径&#xff09; 4.-rpath参数(运行时路径) 5.-rpath-link 参数 6.常见问题与解决方案 7.总…

Hoppscotch

官方地址 xixiaxiazxiaxix下载 • Hoppscotch Hoppscotch 是一款轻量级、基于 Web 的 API 开发套件&#xff0c;其核心功能和特点如下&#xff1a; 核心功能3 交互式 API 测试&#xff1a;允许用户实时发送请求并查看响应&#xff0c;方便记录 API 行为&#xff0c;在记录响…

RabbitMQ 知识详解(Java版)

RabbitMQ 知识详解&#xff08;Java版&#xff09; RabbitMQ 是一个开源的消息代理&#xff0c;实现了高级消息队列协议&#xff08;AMQP&#xff09;。它用于在分布式系统中实现应用解耦、异步通信和流量削峰。 核心概念 生产者(Producer)&#xff1a;发送消息的应用消费者(…