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

如何实现Python脚本自动化,按月新增API请求的周期参数值

解决方法

我们可以通过两种方案实现参数自动更新,无需每月手动修改硬编码值:


方案1:基于时间映射动态计算period值

根据你给出的基准信息:2021年6月可用的最大period值为324,且该值每月固定递增1,我们可以通过日期计算自动生成所需的参数列表:

import requests
from datetime import datetime

# 配置项
BASE_DATE = datetime(2021, 6, 1)
BASE_MAX_PERIOD = 324
FETCH_MONTHS = 5  # 每次拉取最近5个月的数据

# 计算当前最大period值
now = datetime.now()
month_diff = (now.year - BASE_DATE.year) * 12 + (now.month - BASE_DATE.month)
current_max_period = BASE_MAX_PERIOD + month_diff

# 生成period values列表
period_values = [str(current_max_period - i) for i in range(FETCH_MONTHS)][::-1]

url = "http://prognos.konj.se/PxWeb/api/v1/sv/SenastePrognosen/f06_rantorochvaxelkurser/F0604.px"

querystring = {
  "query": [
    {
      "code": "variabel",
      "selection": {
        "filter": "item",
        "values": ["F0604Repo_u"]
      }
    },
    {
      "code": "period",
      "selection": {
        "filter": "item",
        "values": period_values
      }
    }
  ],
  "response": {
    "format": "px"
  }
}

response = requests.post(url, json=querystring)
print(response.text)

如果API的period编号规则固定,该方案逻辑简单、执行效率高


方案2:拉取API元数据获取可用period值(更可靠)

如果API的period编号规则可能调整,我们可以先调用PxWeb的接口获取period维度的所有可用值,直接取最新的N个构造查询参数,完全不依赖硬编码的编号映射:

import requests

# 配置项
FETCH_MONTHS = 5

url = "http://prognos.konj.se/PxWeb/api/v1/sv/SenastePrognosen/f06_rantorochvaxelkurser/F0604.px"

# 第一步:拉取接口元数据,获取所有可用period值
meta_resp = requests.get(url)
all_periods = [v['value'] for v in meta_resp.json()['variables'][1]['values']]
# 取最新的FETCH_MONTHS个值
period_values = all_periods[-FETCH_MONTHS:]

# 第二步:构造查询请求
querystring = {
  "query": [
    {
      "code": "variabel",
      "selection": {
        "filter": "item",
        "values": ["F0604Repo_u"]
      }
    },
    {
      "code": "period",
      "selection": {
        "filter": "item",
        "values": period_values
      }
    }
  ],
  "response": {
    "format": "px"
  }
}

response = requests.post(url, json=querystring)
print(response.text)

该方案不需要维护时间和period编号的映射关系,即使API调整编号规则也能正常运行,更适合长期自动执行的脚本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:06:02