【发布时间】:2020-03-10 09:27:27
【问题描述】:
我的问题是将一年提前一天,所以我的计算从一年的第一天开始,最好是星期一。它可以忽略前一天,例如,如果 1 月 1 日是星期日,它可以忽略它并将星期一推为第一天。我实施的逻辑是只获取星期一的数据,例如一周的第一天。
X=[]
Y=[]
for item in data['Elements']:
for sub_item in item['TimeSpans']:
if (item['Date'].startswith("2017")):
iso_day = datetime.datetime.strptime(item['Date'], '%Y-%m-%dT%H:%M:%S').isocalendar() #Moving Date Logic
if (iso_day[2] == 1):
X.append(iso_day)
Y.append(sub_item['Value'])
我怎样才能让它每天都显示,而不是只在这个星期一显示,同时牢记我的上述年度问题? if 语句中的条件使其仅从星期一开始。我如何操纵该语句,使其最初从星期一开始,然后在从星期一开始时也推出其他日期的数据。
我的json是这样的:
{
"SpotKey": "79",
"SpotName": "ELIX",
"Denomination": "eur/mwh",
"Elements": [
{
"Date": "2017-01-01T00:00:00",
"Base": 36.8696,
"Peak": 36.0125,
"TimeSpans": [
{
"TimeSpan": "00:00-01:00",
"Value": 46.43
},
{
"TimeSpan": "01:00-02:00",
"Value": 42.43
}
]
},
{
"Date": "2017-01-02T00:00:00",
"Base": 53.7413,
"Peak": 63.0317,
"TimeSpans": [
{
"TimeSpan": "00:00-01:00",
"Value": 41.18
},
{
"TimeSpan": "01:00-02:00",
"Value": 37.34
}
]
}
]
}
【问题讨论】:
-
检查 dateutil - 它可以进行诸如“从 x 开始的下一个星期一”、“每月的第 3 个星期一”等计算。
-
你的意思是像this?