我有一个需求,我需要对以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"
}
答案 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
当然,如果结果不符合预期,则可能需要改进,但似乎可以根据当前数据提供正确的输出。