日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Python 推導式在接口自動化里的運用

來源: 責編: 時間:2024-05-07 09:15:14 154觀看
導讀Python推導式是一種緊湊且強大的構造,允許你用一行代碼高效地生成新的數據結構(如列表、字典、集合或生成器)基于現有的可迭代對象。推導式結合了循環、條件判斷等結構,提供了非常靈活的方式來處理數據。列表推導式列表推

Python推導式是一種緊湊且強大的構造,允許你用一行代碼高效地生成新的數據結構(如列表、字典、集合或生成器)基于現有的可迭代對象。推導式結合了循環、條件判斷等結構,提供了非常靈活的方式來處理數據。DEa28資訊網——每日最新資訊28at.com

DEa28資訊網——每日最新資訊28at.com

列表推導式

列表推導式(List Comprehensions)DEa28資訊網——每日最新資訊28at.com

列表推導式是最常見的一種,用于從一個可迭代對象創建一個新列表,其基本語法如下:DEa28資訊網——每日最新資訊28at.com

[expression for item in iterable if condition]

expression 是針對每個item進行計算并最終放入新列表的表達式。DEa28資訊網——每日最新資訊28at.com

item 是從iterable中取出的單個元素。DEa28資訊網——每日最新資訊28at.com

iterable 是任何可迭代對象,如列表、元組、集合、字典或生成器。DEa28資訊網——每日最新資訊28at.com

condition(可選)是一個過濾條件,只有當該條件為真時,相應的項才會被包含在結果中。DEa28資訊網——每日最新資訊28at.com

字典推導式

字典推導式(Dictionary Comprehensions)DEa28資訊網——每日最新資訊28at.com

字典推導式用來快速創建字典,其語法結構如下:DEa28資訊網——每日最新資訊28at.com

{key_expression: value_expression for item in iterable if condition}

key_expression 和 value_expression 分別對應新字典中每個鍵值對的鍵和值。DEa28資訊網——每日最新資訊28at.com

其他部分與列表推導式相似。DEa28資訊網——每日最新資訊28at.com

集合推導式

集合推導式(Set Comprehensions)DEa28資訊網——每日最新資訊28at.com

集合推導式與列表推導式類似,但結果是一個集合(無序且元素唯一),語法為:DEa28資訊網——每日最新資訊28at.com

{expression for item in iterable if condition}

生成器推導式

生成器推導式(Generator Expressions)DEa28資訊網——每日最新資訊28at.com

生成器推導式與列表推導式非常相似,但是使用圓括號而不是方括號包圍,生成一個生成器對象,它在迭代時按需產生值,節省內存:DEa28資訊網——每日最新資訊28at.com

(expression for item in iterable if condition)

代碼示例DEa28資訊網——每日最新資訊28at.com

場景1: 動態參數構造

# 假設我們需要測試用戶注冊接口,每個用戶有不同的用戶名和郵箱DEa28資訊網——每日最新資訊28at.com

params_list = [(f"user_{i}", f"user_{i}@example.com") for i in range(1, 4)]for username, email in params_list:    payload = {"username": username, "email": email}    print(f"Sending request with payload: {payload}")    # 實際使用時這里會是發送請求的代碼,例如 `requests.post(url, jsnotallow=payload)`輸出示例:Sending request with payload: {'username': 'user_1', 'email': 'user_1@example.com'}Sending request with payload: {'username': 'user_2', 'email': 'user_2@example.com'}Sending request with payload: {'username': 'user_3', 'email': 'user_3@example.com'}

場景2: 響應數據分析

# 假設我們已經獲取到了一個包含用戶信息的API響應DEa28資訊網——每日最新資訊28at.com

import requestsresponse = requests.get("https://api.example.com/users")response_json = response.json()# 提取所有用戶的IDuser_ids = [user['id'] for user in response_json['data']]print(f"Extracted User IDs: {user_ids}")輸出示例:Extracted User IDs: [1, 2, 3, 4, 5]

場景3: 斷言優化

# 假設我們要驗證返回的用戶角色集合是否正確DEa28資訊網——每日最新資訊28at.com

expected_roles = {"admin", "editor"}response = requests.get("https://api.example.com/roles")actual_roles = {role['name'] for role in response.json()}assert expected_roles == actual_roles, f"Expected roles {expected_roles} but got {actual_roles}"print("Roles assertion passed.")輸出示例:Roles assertion passed.

或者如果斷言失敗,則會輸出錯誤信息。DEa28資訊網——每日最新資訊28at.com

場景4: 結果篩選與異常檢測

# 模擬一組API響應DEa28資訊網——每日最新資訊28at.com

responses = [{"status_code": 200}, {"status_code": 404}, {"status_code": 200}]failed_responses = [response for response in responses if response["status_code"] != 200]if failed_responses:    print(f"Failed responses detected: {failed_responses}")else:    print("All requests succeeded.")輸出示例:Failed responses detected: [{'status_code': 404}]

場景5: 測試數據準備

# 生成用于測試的數據DEa28資訊網——每日最新資訊28at.com

test_data_gen = (    {"id": idx, "name": f"Test_{idx}", "status": "active" if idx % 2 == 0 else "inactive"}    for idx in range(1, 6))for data in test_data_gen:    print(f"Generated test data: {data}")    # 在實際使用中,這里會是使用這些數據進行API請求的代碼輸出示例:Generated test data: {'id': 1, 'name': 'Test_1', 'status': 'inactive'}Generated test data: {'id': 2, 'name': 'Test_2', 'status': 'active'}Generated test data: {'id': 3, 'name': 'Test_3', 'status': 'inactive'}Generated test data: {'id': 4, 'name': 'Test_4', 'status': 'active'}Generated test data: {'id': 5, 'name': 'Test_5', 'status': 'inactive'}

本文鏈接:http://www.www897cc.com/showinfo-26-87038-0.htmlPython 推導式在接口自動化里的運用

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 每個開發者都必須要知道的,三個JS高效運算符:?. || ?? || ??=

下一篇: 我們一起聊聊如何編寫異步運行時通用庫?

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 泉州市| 阳城县| 炉霍县| 剑阁县| 江陵县| 龙口市| 项城市| 正镶白旗| 长乐市| 尼勒克县| 海宁市| 江川县| 德化县| 灵川县| 探索| 巫溪县| 山西省| 兴文县| 景东| 郯城县| 安康市| 东丰县| 永宁县| 平潭县| 如东县| 京山县| 岑溪市| 香格里拉县| 英山县| 仙桃市| 东平县| 新安县| 荆门市| 瓦房店市| 潜江市| 卓资县| 弥渡县| 阳西县| 丽江市| 城市| 鹿邑县|