首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python -未来和上一个日历季度

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

Stack Overflow用户
提问于 2018-06-26 06:07:52
回答 1查看 62关注 0票数 0

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

代码语言:javascript
复制
  {
  "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.未来3个季度(从当月开始)

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

我该如何从这里开始-

代码语言:javascript
复制
response=requests.get("json url")
jsondata=response['level1']['finalresult']

now = datetime.datetime.now()

current_year = now.year

total_sum_last2qrtrs=[]
total_sum_next3qrtrs=[]

for result in jsondata:
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-26 10:12:54

像这样的东西可能会起作用:

代码语言:javascript
复制
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()

输出:

代码语言:javascript
复制
290 # 153 + 124 + 13
0   # None that meet the criteria

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51032421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档