【发布时间】:2021-04-09 00:13:25
【问题描述】:
我将我的代码编辑到现在可以工作的程度:
def Reset():
data = []
data.append({
'year': now.year,
'months': []
})
for year in range(len(data)):
for month in range(12):
data[year]['months'].append({
'month': (month + 1),
'days': []
})
if (month+1 == 2):
daysAmount = 28
if (is_leap_year(now.year)):
daysAmount = 29
elif ((month+1) == 12):
daysAmount = 31
elif ((month+1)%2 == 0):
daysAmount = 30
else:
daysAmount = 31
for day in range(daysAmount):
data[year]['months'][month]['days'].append({
'day': (day + 1),
})
with open('data.json', 'w') as outfile:
json.dump(data, outfile)
重置() 这是我让它工作后的输出:
[{"year": 2021, "months": [{"month": 1, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 2, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}]}, {"month": 3, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 4, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}]}, {"month": 5, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 6, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}]}, {"month": 7, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 8, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}]}, {"month": 9, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 10, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}]}, {"month": 11, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}, {"month": 12, "days": [{"day": 1}, {"day": 2}, {"day": 3}, {"day": 4}, {"day": 5}, {"day": 6}, {"day": 7}, {"day": 8}, {"day": 9}, {"day": 10}, {"day": 11}, {"day": 12}, {"day": 13}, {"day": 14}, {"day": 15}, {"day": 16}, {"day": 17}, {"day": 18}, {"day": 19}, {"day": 20}, {"day": 21}, {"day": 22}, {"day": 23}, {"day": 24}, {"day": 25}, {"day": 26}, {"day": 27}, {"day": 28}, {"day": 29}, {"day": 30}, {"day": 31}]}]}]
选中的答案解决了我的问题。
【问题讨论】:
-
type((month+1)/2)将始终为float,即使它类似于1.0。请改用(month+1)/2).is_integer()。 -
此外,即使您确实想检查类型,
isinstance()通常也是一种更好的方法。最后,您应该考虑是否可以使用datetime模块的功能来完成此任务;正确实现您自己的日期处理代码很棘手。 -
您能否更具体地了解您的问题?您的问题是模数是检查数字是偶数还是奇数的唯一选项,还是关于您的代码的另一个问题?第一种情况不需要代码,最后一种情况请贴出当前输出并指出哪里出了问题
-
我会注意到,即使您正确实施它,您的偶数/奇数检查的基本逻辑对于计算月份的长度也是不正确的。有 7 个 31 天的月份和 4 个 30 天的月份(以及 2 月,它自己做事)。您当前的逻辑,即使它有效,仍然会在 8 月至 11 月出错。
-
8 月现在是正确的,我将更新我的代码。检查的答案修复了它。
标签: python