<p>是的,有一种方法可以将数据列表中的项目数(而不是实际对象)输入到“year”变量中,为此,您应该使用</p>
<pre><code>for year in range(len(data)):
</code></pre>
<p>如下</p>
<pre><code>import json
import datetime
now = datetime.datetime.now()
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 (isinstance(year/4, int)):
daysAmount = 29
elif (month+1 == 12):
daysAmount = 31
elif (isinstance((month+1)/2, int)):
daysAmount = 30
else:
daysAmount = 31
for day in range(daysAmount):
data[year]['months'][month].days.append({
'day': (day + 1),
})
with open('./data.txt', 'w') as outfile:
json.dump(data, outfile)
Reset()
</code></pre>
<p>另一种方法是使用</p>
<pre><code>for year in data:
</code></pre>
<p>如下</p>
<pre><code>import json
import datetime
now = datetime.datetime.now()
def Reset():
data = []
data.append({
'year': now.year,
'months': []
})
for year in data:
for month in range(12):
year['months'].append({
'month': (month + 1),
'days': []
})
if (month+1 == 2):
daysAmount = 28
if (isinstance(year/4, int)):
daysAmount = 29
elif (month+1 == 12):
daysAmount = 31
elif (isinstance((month+1)/2, int)):
daysAmount = 30
else:
daysAmount = 31
for day in range(daysAmount):
year['months'][month].days.append({
'day': (day + 1),
})
with open('./data.txt', 'w') as outfile:
json.dump(data, outfile)
Reset()
</code></pre>