Python如何读取文件数据为字典动态设置number和description字段值
当然可以实现,以下是Python环境下的实现方案:
实现思路
- 先预设固定结构的字典模板,保留需要动态替换的
number、description字段的占位 - 逐行读取
data.dat文件,对每行内容做去空格、按逗号拆分处理,提取对应的数值和描述文本 - 遍历所有行数据时,每次深拷贝字典模板,再将提取到的两个字段赋值到对应位置,即可得到填充完成的字典
完整代码示例
import copy # 定义固定结构的字典模板 base_payload = { "method": "POST", "headers": {}, "body": { "message": { "messageId": 22, "messageVersion": 3 }, "number": None, "description": None } } # 存储所有填充完成的payload的列表 payload_list = [] # 读取data.dat文件 with open("data.dat", "r", encoding="utf-8") as f: for line in f: # 跳过空行 line = line.strip() if not line: continue # 按逗号拆分,最多拆分1次避免描述内容含逗号出错,同时去除两端多余空格 number_str, description = line.split(",", 1) number = int(number_str.strip()) description = description.strip() # 深拷贝基础模板,避免修改原始模板影响后续生成 current_payload = copy.deepcopy(base_payload) current_payload["body"]["number"] = number current_payload["body"]["description"] = description payload_list.append(current_payload) # 可按需使用生成的payload,比如遍历调用接口 for payload in payload_list: print(payload)
补充说明
如果你的data.dat里的number字段不需要转为整数类型,去掉int()转换即可。如果不需要批量存储所有payload,也可以在遍历行的环节直接调用接口请求逻辑,省去存储到列表的步骤。
内容的提问来源于stack exchange,提问作者user1591156
相关产品推荐
相关产品推荐

