需求
需求:
1.将execl文件中的A列赋值给json中的TrackId,B列赋值给json中的OId
要求 execl的每一行,对应json中的每一个OId
json 如下:
{"List": [{"BatchNumber": "181-{{var}}",// "BatchNumber": "181-17194575111","FlightNumber": "10214","AirlineCode": "CO","FlightDepartureAirport": "ADA","EstimatedExportTime":"2025-02-18 09:23:21","EstimatedArriveTime":"2024-05-19 09:23:21","FlightEntryAirport": "ADA","FileType":"pdf","AirWaybillFile": """BagDataList": [ {"BagNo": "PKG{{var}}6","OrderDatas": [{"OId": "BG-2401248300000001133","TrackId": "97222600001133"},{"OId": "BG-2401248300000001133","TrackId": "97222600001133"}]}]}]}]
}
2.execl 保存在 D:\PYTHON-学习\邮政接口压力测试脚本\pythonProject1\test_73553\IDS.xlsx 中
3.赋值完成后,输出新的json格式文件保存在项目JSON目录中
实现代码
# -*- coding: utf-8 -*-
import pandas as pd
import json
from pathlib import Path# 读取Excel文件(注意路径中的中文)
excel_path = r"D:\PYTHON-学习\邮政接口压力测试脚本\pythonProject1\test_73553\IDS.xlsx"
df = pd.read_excel(excel_path)# 构建JSON结构
template = {"List": [{"BatchNumber": "181-{{var}}","FlightNumber": "10214","AirlineCode": "CO","FlightDepartureAirport": "ADA","EstimatedExportTime": "2025-02-18 09:23:21","EstimatedArriveTime": "2024-05-19 09:23:21","FlightEntryAirport": "ADA","FileType": "pdf","AirWaybillFile": "","BagDataList": [{"BagNo": "PKG{{var}}6","OrderDatas": []}]}]
}# 填充OrderDatas
for _, row in df.iterrows():order_data = {"OId": row["原平台ID"],"TrackId": row["跟踪号"]}template["List"][0]["BagDataList"][0]["OrderDatas"].append(order_data)# 创建输出目录
output_dir = Path.cwd() / "JSON"
output_dir.mkdir(exist_ok=True)# 保存JSON文件(显式指定utf-8编码)
output_path = output_dir / "output.json"
with open(output_path, "w", encoding="utf-8") as f:json.dump(template, f, indent=4, ensure_ascii=False)print(f"JSON文件已生成至:{output_path}")
实现结果