在字典列表中添加key/value对(计算)

Add a key/value pair(With caculation) in a list of dictionaries

我使用 gspreadpandas 将我的 google sheet 转换为 dictionarieslist。我的googlesheet如下list:(列表很长,所以只列出几行)

mysheet=[{'StartDate': '2021-10-02', 'ID': 11773, 'Receiver': Mike},{'StartDate': '2021-11-02', 'ID': 15673, 'Receiver': Jane}, ... {'StartDate': '2021-10-10', 'ID': 34653, 'Receiver': Jack}]

我想将 key/value 对添加到此列表,该值将使用具有函数的先前单元格中的值。例如,我想计算从今天开始还有多少天,所以我的列表将显示为:

mysheetnew=[{'StartDate': '2021-10-02', 'ID': 11773, 'Receiver': Mike, 'Days':66 },{'StartDate': '2021-10-03', 'ID': 15673, 'Receiver': Jane, 'Days':65}, ... {'StartDate': '2021-10-5', 'ID': 34653, 'Receiver': Jack, 'Days':63}]

请帮忙:)

您可以使用

mysheetnew = []
for item in mysheet:
    temp = item.copy()
    temp["keyname"] = value
    mysheetnew.append(temp)

而不是 values,您可以输入 func(temp["date"]) 或其他。 希望对你有帮助。

编辑: 更准确地说

import datetime

mysheetnew = []
for item in mysheet:
    temp = item.copy()
    timediff = datetime.datetime.now() - datetime.datetime.strptime(temp["StartDate"], "%Y-%m-%d")
    temp["Days"] = timediff.days
    mysheetnew.append(temp)

这利用 datetime 模块来处理日期并计算两个日期之间的差异。