Python自动化批量查询德邦物流信息并更新Excel表格
import requests
import openpyxl
def query_deppon():
# 替换为实际的工作簿路径和工作表名称
workbook_path = r'C:\Users\ywmt\Desktop\your_workbook.xlsx'
sheet_name = '2023.10产品库存统计'
# 打开工作簿
workbook = openpyxl.load_workbook(workbook_path)
# 获取指定工作表
sheet = workbook[sheet_name]
# 假设单号在第K列,结果在第L列
tracking_column = 10 # 第11列,索引从0开始
status_column = 11 # 第12列,索引从0开始
# 遍历行
for row in sheet.iter_rows(min_row=2):
tracking_number = row[tracking_column].value
if tracking_number:
# 构建查询URL
query_url = f'https://api.deppon.com/openapi/business/trans/getTransInfo?trackingNo={tracking_number}&appId=sj133126259351&appKey=147369213.yY'
# 发送GET请求
response = requests.get(query_url)
if response.status_code == 200:
result = response.json()
# 解析查询结果,提取需要的信息
status = result['data']['status']
# 更新查询结果
row[status_column].value = status
else:
print(f'查询运单号 {tracking_number} 失败:{response.status_code}')
# 保存工作簿
workbook.save(workbook_path)
# 调用查询函数
query_deppon()
代码解释:
-
导入必要的库:
requests: 用于发送HTTP请求到德邦物流API。openpyxl: 用于读取和写入Excel文件。
-
定义
query_deppon()函数:- 设置工作簿路径
workbook_path和工作表名称sheet_name。 - 使用
openpyxl.load_workbook()打开工作簿。 - 使用
workbook[sheet_name]获取指定工作表。 - 设置单号列
tracking_column和结果列status_column的索引。 - 使用
sheet.iter_rows(min_row=2)遍历从第二行开始的所有数据行。 - 对于每一行,获取单号,并构建德邦物流API的查询URL。
- 使用
requests.get()发送GET请求到API。 - 检查响应状态码,如果为200,则解析JSON响应,提取物流状态,并更新到Excel表格对应单元格。
- 如果查询失败,打印错误信息。
- 最后,使用
workbook.save()保存更新后的工作簿。
- 设置工作簿路径
-
调用
query_deppon()函数执行查询和更新操作。
使用方法:
- 确保你已经安装了
requests和openpyxl库。可以使用pip install requests openpyxl命令安装。 - 将代码保存为Python文件,例如
deppon_logistics_query.py。 - 修改代码中的
workbook_path和sheet_name变量,将其替换为实际的工作簿路径和工作表名称。 - 运行Python脚本。
注意事项:
- 你需要将代码中的
appId和appKey替换为你自己的德邦物流API密钥。 - 确保你的Excel文件已关闭,然后再运行脚本。
- 该代码假设物流单号在Excel表格的第K列,结果将更新到第L列。如果你的表格结构不同,请修改
tracking_column和status_column变量的值。
希望这篇博客文章能帮助你使用Python自动化批量查询德邦物流信息并更新Excel表格!
原文地址: https://www.cveoy.top/t/topic/C9C 著作权归作者所有。请勿转载和采集!