使用Python从json中提取复杂的日期范围

2024-05-15 15:38:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用python从下面的json响应中提取2019-10-21之后到今天的所有日期。我对Python非常陌生,刚刚开始探索新函数。谁能给我一个开始的提示

我的api响应

response=
{ "id": "100", 
"location":
{
"address1" : {"city":"x", "state":"y", "zip":"55"}, 
"address2" : {"city":"g", "state":"h", "zip":"33"},
},
"date": [
{
 "shipping_date": "2020-12-13",
 "shipping_name": "xuv"
},
{
 "shipping_date": "2014-11-31",
 "shipping_name": "yuv"
},
{
 "shipping_date": "2020-12-14",
 "shipping_name": "puv"
},
{
 "shipping_date": "2020-08-22",
 "shipping_name": "juv"
},
{
 "shipping_date": "2019-10-21",
 "shipping_name": "auv"
} ]
}

我的输出

id | shipping_date | shipping_name
100| 2020-12-13 | xuv
100| 2020-12-14 | puv
100| 2020-08-22 | juv


Tags: 函数nameapiidjsoncitydateresponse
2条回答
for data in response["date"]:
    print(data["shipping_date"])

使用此代码获取所有装运日期

根据萨贡·德夫科塔的回答,OP要求提供特定日期范围之间的数据
您可以使用time.strptime来分析和比较日期。
假设您需要从1-1-201931-12-2020的一切,您可以这样做

import time
start = time.strptime("2019-1-1","%Y-%m-%d")
end = time.strptime("2020-12-31","%Y-%m-%d")

for data in response["date"]:
    date = time.strptime(data["shipping_date"],"%Y-%m-%d")
    if date>=start and date<=end:
        print(data["shipping_date"])

注:11月有30天,而shipping_date1指数是11-31

相关问题 更多 >