像这样的事情可能会奏效:def total_sum_next3qrtrs(current_year, current_quarter):
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(current_year, current_quarter):
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(current_year, current_quarter)
print total_sum_last2qrtrs(current_year, current_quarter)
输出:290 # 153 + 124 + 13
0 # None that meet the criteria