You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python获取上一财季日期并注入API请求Payload?

解决方案

可以用pandas的Period和时间处理能力轻松实现需求,以下是具体步骤和修改后的代码:

步骤说明

  1. 获取当前日期,转换为季度周期对象,默认按自然财季计算(Q1=1-3月、Q2=4-6月等,非自然财季可调整参数)
  2. 推导上一个季度的周期,提取该季度的结束日期
  3. 计算该季度开始日期的前一天,作为API需要的start_date

修改后的代码

首先确保已安装pandas:

pip install pandas

替换原有代码中的日期逻辑:

import datetime as dt
import pandas as pd

def get_previous_quarter_dates():
    # 获取当前日期
    today = dt.datetime.today()
    # 转换为自然季度周期,若财季非自然(如Q1为10-12月),可改为freq='Q-SEP'
    current_quarter = pd.Period(today, freq='Q')
    # 获取上一个季度
    previous_quarter = current_quarter - 1
    
    # 提取上一季度的结束日期
    quarter_end = previous_quarter.end_time.to_pydatetime()
    # 计算上一季度开始日期的前一天
    quarter_start = previous_quarter.start_time.to_pydatetime()
    start_date = (quarter_start - dt.timedelta(days=1)).strftime("%Y-%m-%d")
    end_date = quarter_end.strftime("%Y-%m-%d")
    
    return start_date, end_date

def job_initializer():
    # 动态获取上一财季日期
    start_date, end_date = get_previous_quarter_dates()
    #   calling function that returns variables required for API call
    key, secret, url = authentication()
    payload = """
    {
      "data":{
        "type":"jobs",
        "attributes":{
          "job_type":"portfolio_view_results",
          "parameters":{
            "view_id":"416555",
            "portfolio_type":"firm",
            "portfolio_id":"1",
            "output_type":"csv",
            "start_date":"%s",
            "end_date":"%s"
          }
        }
      }
    }
    """ % (start_date, end_date)
    # 后续API请求逻辑...

非自然财季适配

如果你的财季不是自然季度(例如财季结束于9月,Q1为10-12月),只需修改pd.Period的freq参数:

  • 财季结束于3月:freq='Q-MAR'
  • 财季结束于6月:freq='Q-JUN'
  • 财季结束于9月:freq='Q-SEP'

内容的提问来源于stack exchange,提问作者William

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:45:24