【发布时间】:2020-04-24 09:16:29
【问题描述】:
我对使用 Python 中的列表压缩不同大小的字典、匹配日期模式有一些疑问。
我有一个接收以下参数的 API:
code
start_date
end_date
我进行 SQL 查询以获取按年和月分组的度量值总和的结果,因此对于每个月和每年(如果有度量值),我的输出将是这样的:
{'start_date': datetime.date(2020, 1, 29), 'end_date': datetime.date(2020, 1, 29), 'measure': 619.2}
当我的 SQL 表中在请求日期的所有月份中都没有结果时,问题就出现了。
我有一个函数可以告诉我一个月的第一天和最后一天,接收请求的 start_date 和 end_date 作为参数。
例如,如果请求的 start_date 是“2019-02-01”,请求的 end_date 是“2020-03-10”,我的函数会将其作为输出
[['2019-02-01', '2019-02-28'], ['2019-03-01', '2019-03-31'], ['2019-04-01', '2019-04-30'], ['2019-05-01', '2019-05-31'], ['2019-06-01', '2019-06-30'], ['2019-07-01', '2019-07-31'], ['2019-08-01', '2019-08-31'], ['2019-09-01', '2019-09-30'], ['2019-10-01', '2019-10-31'], ['2019-11-01', '2019-11-30'], ['2019-12-01', '2019-12-31'], ['2020-01-01', '2020-01-31'], ['2020-02-01', '2020-02-29'], ['2020-03-01', '2020-03-10']]
例如,假设我的 SQL 表只获取从“2020-01-01”开始到“2020-03-10”结束的时间段的结果。我需要用我的天数列表压缩我的输出,这样我才能获得这样的新输出:
{
"code": "xxx1",
"measures": [
{
"start_date": "2020-01-01",
"end_date": "2020-01-31",
"measure": 619.2
},
{
"start_date": "2020-02-01",
"end_date": "2020-02-28",
"measure": 701.5
},
{
"start_date": "2020-03-01",
"end_date": "2020-03-10",
"measure": 238.6
}
]
}
非常感谢,
【问题讨论】:
-
如果您有一个函数为您的其他 API 提供
start_date和end_date参数,我看不出这里有什么问题? -
这需要进一步澄清。当请求日期为 2020 年时,为什么您的日期列表中有
2019日期? -
抱歉,我已经编辑了我的问题