打印快递开始日期后7天内交付的所有装运

2024-09-28 17:30:19 发布

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

a= {101: {'Sender': 'Phillip', 'Receiver': 'Ramya', 'Start date': '14-03-2020', 'Delivery date': '25-03-2020', 'Sender location': 'Area 1', 'Receiver location': 'Area 6', 'Delivery status': 'Delivered', 'Shipping cost': 198}, 102: {'Sender': 'Romesh', 'Receiver': 'Phillip', 'Start date': '18-06-2020', 'Delivery date': '09-07-2020', 'Sender location': 'Area 2', 'Receiver location': 'Area 4', 'Delivery status': 'Delivered', 'Shipping cost': 275}, 103: {'Sender': 'Omega lll', 'Receiver': 'Ramya', 'Start date': '01-12-2020', 'Delivery date': 'Null', 'Sender location': 'Area 5', 'Receiver location': 'Area 1', 'Delivery status': 'In-Transit', 'Shipping cost': 200}, 104: {'Sender': 'Phillip', 'Receiver': 'John', 'Start date': '23-06-2020', 'Delivery date': '25-06-2020', 'Sender location': 'Area 1', 'Receiver location': 'Area 4', 'Delivery status': 'Delivered', 'Shipping cost': 314}, 105: {'Sender': 'Ramya', 'Receiver': 'Romesh', 'Start date': '29-08-2020', 'Delivery date': '10-09-2020', 'Sender location': 'Area 5', 'Receiver location': 'Area 3', 'Delivery status': 'Delivered', 'Shipping cost': 275}, 106: {'Sender': 'John', 'Receiver': 'Omega lll', 'Start date': '28-06-2020', 'Delivery date': 'Null', 'Sender location': 'Area 3', 'Receiver location': 'Area 1', 'Delivery status': 'In-Transit', 'Shipping cost': 270}}

**我尝试使用筛选功能,但遇到了如何比较日期的问题**

Start_date= list(filter(lambda value: value['Start date' in 'Delivery Date'] ,a.values()))
print(Start_date)

有人能帮我吗


Tags: datestatusarealocationstartsendershippingdelivery
1条回答
网友
1楼 · 发布于 2024-09-28 17:30:19

您可以使用^{}将字符串转换为datetime对象:

from datetime import datetime

for v in a.values():
    if v["Delivery date"] == "Null":
        continue

    start = datetime.strptime(v["Start date"], "%d-%m-%Y")
    delivery = datetime.strptime(v["Delivery date"], "%d-%m-%Y")

    if (delivery - start).days <= 7:
        print(v)

印刷品:

{'Sender': 'Phillip', 'Receiver': 'John', 'Start date': '23-06-2020', 'Delivery date': '25-06-2020', 'Sender location': 'Area 1', 'Receiver location': 'Area 4', 'Delivery status': 'Delivered', 'Shipping cost': 314}

相关问题 更多 >