如何在python中显示当前月份的前6个月数据
我有3个月的数据,如:如何在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 } ] [
[
{
"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
到目前为止你试过什么?请发布您的代码。您还没有尝试过任何东西。请尝试为您的案例编写条件。如果出现意外错误或意外输出,请发布代码以获取帮助。这里的人不会帮你做作业。