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()

代码解释:

  1. 导入必要的库:

    • requests: 用于发送HTTP请求到德邦物流API。
    • openpyxl: 用于读取和写入Excel文件。
  2. 定义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() 保存更新后的工作簿。
  3. 调用query_deppon()函数执行查询和更新操作。

使用方法:

  1. 确保你已经安装了 requestsopenpyxl 库。可以使用 pip install requests openpyxl 命令安装。
  2. 将代码保存为Python文件,例如 deppon_logistics_query.py
  3. 修改代码中的 workbook_pathsheet_name 变量,将其替换为实际的工作簿路径和工作表名称。
  4. 运行Python脚本。

注意事项:

  • 你需要将代码中的 appIdappKey 替换为你自己的德邦物流API密钥。
  • 确保你的Excel文件已关闭,然后再运行脚本。
  • 该代码假设物流单号在Excel表格的第K列,结果将更新到第L列。如果你的表格结构不同,请修改 tracking_columnstatus_column 变量的值。

希望这篇博客文章能帮助你使用Python自动化批量查询德邦物流信息并更新Excel表格!

Python自动化批量查询德邦物流信息并更新Excel表格

原文地址: https://www.cveoy.top/t/topic/C9C 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录