首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在字典列表中添加键/值对(有计算)

在字典列表中添加键/值对(有计算)
EN

Stack Overflow用户
提问于 2022-02-03 14:22:12
回答 1查看 72关注 0票数 2

我使用gspreadpandas将我的google表转换为list of dictionaries。我的google表显示为以下list:(这是一个很长的列表,所以我只列出了几行)

代码语言:javascript
复制
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对,这个值将使用来自前一个单元格的值和一个函数。例如,我想计算出从今天起的几天,所以我的列表将显示如下:

代码语言:javascript
复制
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}]

(请帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-03 14:39:46

您可以使用

代码语言:javascript
复制
mysheetnew = []
for item in mysheet:
    temp = item.copy()
    temp["keyname"] = value
    mysheetnew.append(temp)

而不是values,您可以放置func(temp["date"])或其他。希望能帮上忙。

编辑:更准确地说

代码语言:javascript
复制
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模块来操作日期和两个日期之间的区别。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70972923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档