在Python请求中重试

2024-09-29 21:33:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下重试需要:

我的Python脚本使用REQUESTS模块调用API&parse JSON响应。

最近,API返回不完整的数据,如下所示

不完整数据:

  {
    offerInfo: {
      siteID: "001",
      language: "en_US",
      currency: "USD"
    },
    userInfo: {
      persona: {
        personaType: "OTHERS"
      },
      userId: "111"
    },
    offers: { }
  }

完整数据:

  {
    offerInfo: {
      siteID: "001",
      language: "en_US",
      currency: "USD"
    },
    userInfo: {
      persona: {
        personaType: "OTHERS"
      },
      userId: "111"
    },
    offers: { 
      Flight: [
        {
          offerDateRange: {
            travelStartDate: [2016, 5, 7],
            travelEndDate: [2016, 5, 11]
          }
       }
    }
  }

完整的响应应该包含[“offers”][“Flight”]键,如果不是,我的代码应该在放弃前尝试调用API N次,转到下一个API URL。

我正在尝试使用下面的会话代码,但不确定如何在其中添加签入[“offers”][“Flight”]

注意:在获取从API返回的不完整数据时没有HTTP错误,因此我必须依赖键['offers']['Flight']

session = requests.Session()
session.mount("http://", requests.adapters.HTTPAdapter(max_retries=2))
session.mount("https://", requests.adapters.HTTPAdapter(max_retries=2))
try:
    response = session.get(url=line,timeout=(connect_timeout,read_timeout),verify=False)

Tags: 数据apisessiontimeoutrequestslanguagecurrencyen

热门问题