如何在python中显示当前月份的前6个月数据

如何在python中显示当前月份的前6个月数据,python,Python,我有3个月的数据,如: [ { "Month": "Aug", "MonthNumber": "08", "NetAmount": 661.5 }, { "Month": "Oct", "MonthNumber": "10", "NetAmount": 245.1 }, { "Month": "Nov", "MonthNumber": "11", "NetAmount": 8877.4 } ] [

我有3个月的数据,如:

[
  {
    "Month": "Aug",
    "MonthNumber": "08",
    "NetAmount": 661.5
  },
  {
    "Month": "Oct",
    "MonthNumber": "10",
    "NetAmount": 245.1
  },
  {
    "Month": "Nov",
    "MonthNumber": "11",
    "NetAmount": 8877.4
  }
]
[
  {
    "Month": "Jun",
    "MonthNumber": "06",
    "NetAmount": 0
  },
  {
    "Month": "Jul",
    "MonthNumber": "07",
    "NetAmount": 0
  },
  {
    "Month": "Aug",
    "MonthNumber": "08",
    "NetAmount": 661.5
  },
  {
    "Month": "Sep",
    "MonthNumber": "09",
    "NetAmount": 0
  },
  {
    "Month": "Oct",
    "MonthNumber": "10",
    "NetAmount": 245.1
  },
  {
    "Month": "Nov",
    "MonthNumber": "11",
    "NetAmount": 8877.4
  }
]
我想显示完整的6个月(当前+以前)数据,如:

[
  {
    "Month": "Aug",
    "MonthNumber": "08",
    "NetAmount": 661.5
  },
  {
    "Month": "Oct",
    "MonthNumber": "10",
    "NetAmount": 245.1
  },
  {
    "Month": "Nov",
    "MonthNumber": "11",
    "NetAmount": 8877.4
  }
]
[
  {
    "Month": "Jun",
    "MonthNumber": "06",
    "NetAmount": 0
  },
  {
    "Month": "Jul",
    "MonthNumber": "07",
    "NetAmount": 0
  },
  {
    "Month": "Aug",
    "MonthNumber": "08",
    "NetAmount": 661.5
  },
  {
    "Month": "Sep",
    "MonthNumber": "09",
    "NetAmount": 0
  },
  {
    "Month": "Oct",
    "MonthNumber": "10",
    "NetAmount": 245.1
  },
  {
    "Month": "Nov",
    "MonthNumber": "11",
    "NetAmount": 8877.4
  }
]

如果任何月份的数据不可用,则显示值为0的月份。请指导。

您应该在变量中列出所有月份的简称:

months = "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
data = [
    {
        "Month": "Aug",
        "MonthNumber": "08",
        "NetAmount": 661.5
    },
    {
        "Month": "Oct",
        "MonthNumber": "10",
        "NetAmount": 245.1
    },
    {
        "Month": "Nov",
        "MonthNumber": "11",
        "NetAmount": 8877.4
    }
]
要添加错过的月份,可以使用下一个代码:

completed_data = []
for item in data:
    num = int(item["MonthNumber"])
    for i in range(len(completed_data), num - 1):
        completed_data.append({
            "Month": months[i],
            "MonthNumber": f"{i + 1:02}",
            "NetAmount": 0
        })
    completed_data.append(item)
for i in range(len(completed_data), 12):
    completed_data.append({
        "Month": months[i],
        "MonthNumber": f"{i + 1:02}",
        "NetAmount": 0
    })
要打印缩进的结果,可以使用
json

import json
print(json.dumps(completed_data, indent=4))

我已经尝试并获得了所需的结果

import time
result = []

months = {
    '1':'Jan',
    '2':'Feb',
    '3':'Mar',
    '4':'Apr',
    '5':'May',
    '6':'Jun',
    '7':'Jul',
    '8':'Aug',
    '9':'Sep',
    '10':'Oct',
    '11':'Nov',
    '12':'Dec',
}

if len(filter_result) > 0:
    x = 6
    now = time.localtime()
    monthData = [time.localtime(time.mktime((now.tm_year, now.tm_mon - n, 1, 0, 0, 0, 0, 0, 0)))[:2] for n in range(x)]
    count = 0
    for i in range(len(monthData),0,-1):
        for data in filter_result:
            if monthData[i-1][1] == int(data.MonthNumber):
                data['NetAmount'] = formatDecimal(data['NetAmount'] / 1000)
                result.append(data)
                break
        if len(result) == count+1:
            count += 1
            continue
        else:
            salesData = {
                "Month" : months[str(monthData[i-1][1])],
                "MonthNumber" : "%02d" % (monthData[i-1][1],),
                "NetAmount" : 0
            }
            result.append(salesData)
            count += 1

return result

到目前为止你试过什么?请发布您的代码。您还没有尝试过任何东西。请尝试为您的案例编写条件。如果出现意外错误或意外输出,请发布代码以获取帮助。这里的人不会帮你做作业。