如何用Python从字典项替换请求对象并生成多份请求?
生成对应每组国家和城市的请求体解决方案
你的需求是从给定字典中,将对应索引的国家和城市配对,替换到payload模板里,生成4个独立的请求体。你之前的代码存在逻辑混乱、变量未定义的问题,所以无法得到预期结果。
正确实现方法
利用zip()函数将字典中country和city列表的对应元素配对,循环生成每个请求体即可:
dict_items = {"country":["india","uk","usa","srilanka"],"city":["delhi","london","new york","colombo"]} # 提取国家和城市列表 countries = dict_items["country"] cities = dict_items["city"] # 存储所有生成的请求体(也可直接在循环中使用,无需存储) payload_list = [] # 遍历配对后的每组国家和城市 for country, city in zip(countries, cities): # 生成当前组的请求体 current_payload = { "country": country, "city": city } payload_list.append(current_payload) # 验证结果 for num, payload in enumerate(payload_list, start=1): print(f"第{num}个请求体: {payload}")
运行输出
第1个请求体: {'country': 'india', 'city': 'delhi'} 第2个请求体: {'country': 'uk', 'city': 'london'} 第3个请求体: {'country': 'usa', 'city': 'new york'} 第4个请求体: {'country': 'srilanka', 'city': 'colombo'}
补充说明
zip(countries, cities)会自动将两个列表中同索引的元素配对成元组,确保国家和城市一一对应;- 如果不需要存储所有请求体,可直接在循环内对
current_payload进行操作(比如发送HTTP请求),无需存入payload_list; - 若字典中
country和city列表长度不一致,zip()会以较短的列表长度为准,避免索引越界。
内容的提问来源于stack exchange,提问作者Sivajyothi
相关产品推荐
相关产品推荐

