Python-未来和上一个日历季度

时间:2018-06-25 22:07:52

标签: python python-2.7

我有一个需求,我需要对以JSON格式获取的结果集进行一些计算(以下示例)。

cppFunction('int getdim(Nullable<NumericMatrix> X_mat) {
  if(X_mat.isNotNull()){
    int col_num = X_mat.ncol();
    return col_num;
  }else{
    return 0;
  }
  }')

如何开始编写函数以找出要跟进的金额-

1。接下来的三个季度(从当月开始)

2。最近两个季度(从当月开始)

我如何从这里继续-

  {
  "level1": {
    "finalresult": [
      {
        "Amount": "12",
        "Month": "04",
        "Year": "2018",
        "Quarter": "2"
      },
      {
        "Amount": "13",
        "Month": "08",
        "Year": "2018",
        "Quarter": "3"
      },
      {
        "Amount": "13",
        "Month": "07",
        "Year": "2017",
        "Quarter": "3"
      },
      {
        "Amount": "124",
        "Month": "12",
        "Year": "2018",
        "Quarter": "4"
      },
      {
        "Amount": "153",
        "Month": "07",
        "Year": "2018",
        "Quarter": "3"
      }

1 个答案:

答案 0 :(得分:1)

类似的事情可能会起作用:

current_quarter = ((now.month-1)//3)+1

def total_sum_next3qrtrs():
    year_next_3_quarters = []
    next_3_quarters = [(i%4+1) for i in range(current_quarter, current_quarter+3)]

    amounts = []

    for q in next_3_quarters:
        if q < current_quarter:
            year_next_3_quarters.append({'Year':current_year+1, 'Quarter': q})
        else:
            year_next_3_quarters.append({'Year':current_year, 'Quarter': q})

    for nq in year_next_3_quarters:
        for q in jsondata:
            if nq['Year'] == int(q['Year']) and nq['Quarter'] == int(q['Quarter']):
                amounts.append(int(q['Amount']))
    return sum(amounts)

def total_sum_last2qrtrs():
    year_last_2_quarters = []
    last_2_quarters = [(i%4+1) for i in range(current_quarter-3, current_quarter-1)]

    amounts = []

    for q in last_2_quarters:
        if q < current_quarter:
            year_last_2_quarters.append({'Year':current_year, 'Quarter': q})
        else:
            year_last_2_quarters.append({'Year':current_year-1, 'Quarter': q})

    for nq in year_last_2_quarters:
        for q in jsondata:
            if nq['Year'] == int(q['Year']) and nq['Quarter'] == int(q['Quarter']):
                amounts.append(int(q['Amount']))
    return sum(amounts)

current_quarter = ((now.month-1)//3)+1

print total_sum_next3qrtrs()
print total_sum_last2qrtrs()

输出:

290 # 153 + 124 + 13
0   # None that meet the criteria

当然,如果结果不符合预期,则可能需要改进,但似乎可以根据当前数据提供正确的输出。