当前位置: 首页 > 知识库问答 >
问题:

Python3:更新了没有重复项的字典项列表

陆翔飞
2023-03-14

我正在为concourse制作一个github问题资源,但我在使用python3时遇到了麻烦

我有version,这是一个字典列表,看起来是这样的。

version = [{"number": "123"}, {"modified": "2020-05-18T16:07:50Z"}, {"number": "321"}, {"modified": "2020-06-18T16:07:50Z"}, {"number": "543"}, {"modified": "2020-06-19T16:07:50Z"}]

该列表将有更多的项目,但将始终至少有1个项目。 最后修改的项目是列表中的最后一个项目。 我正在将version传递到此代码块:

last_modified = version[-1]['modified']
endpoint = "https://api.github.com/repos/repo/issues?sort=updated&direction=asc&since=" + last_modified
connection = requests.get(endpoint, headers=headers)
for i in connection.json():
    version.append( {"number": i['number'], "modified": i['updated_at']})
issues_updated_since = json.dumps(version)
return issues_updated_since

问题是我得到的是重复的,因为我只是添加项目到列表。 我需要能够只追加不是已经在列表中的项目,并在此列表中的项目,只更新那些更改了日期的项目。 我怎么能这么做呢?

这是针对自定义汇合资源的,如果有帮助,请使用check脚本。

共有1个答案

何超英
2023-03-14

您可以存储日期(此处为dates),并仅在收到的版本尚不存在时才追加到version

last_modified = version[-1]['modified']
dates = {v['modified'] for v in version}
endpoint = "https://api.github.com/repos/repo/issues?sort=updated&direction=asc&since=" + last_modified
connection = requests.get(endpoint, headers=headers)
for i in connection.json():
    if i['updated_at'] in dates:
        continue
    version.append({"number": i['number'], "modified": i['updated_at']})
    dates.add(i['updated_at'])
issues_updated_since = json.dumps(version)
return issues_updated_since
 类似资料:
  • 我有一本这样的字典: 我怎么才能把匕首从上面取下来? 我试过这个: 或 但它犯了这个错误:

  • 问题内容: 如果嵌套字典前面没有键,我现在可以删除重复项。我可以使用此功能的字典列表的一个示例是: 但是,我希望能够根据键和该词典中关联的所有值删除重复项。因此,如果内部有相同的键但值不同,则我不想删除它,但是如果有完整的副本,则将其删除。 我该怎么做呢?谢谢。 问题答案: 要从字典列表中删除重复项,请执行以下操作:

  • 本文向大家介绍sharepoint项目。更新列表项,包括了sharepoint项目。更新列表项的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 这看起来应该很简单,但我没有找到任何例子或留档。我有一个看起来像这样的Dynamodb表: 记录1:{姓名、电子邮件、项目[{product}、{item2}、{item3]} 记录2:(姓名、电子邮件、项目[{product}、{item2}、{item3]} 我需要能够更新items元素,即更新记录1中的item1对象。我可以通过硬编码list数组元素使用以下代码来实现这一点,但我不知道如何将

  • 我想知道我有没有“你好世界”这样的文字。我如何设置这个文本视图的偏好,用户可以改变字体大小为中,大,小像20SP,25SP,30SP。

  • 问题内容: 我在MySQL中有一个这样的表: 我怎样才能有MySQL查询来列出像这样的重复项? 重复搜索的结果: 问题答案: SELECT a., b.totalCount AS Duplicate FROM tablename a INNER JOIN ( SELECT email, COUNT( ) totalCount FROM tableName GROUP BY email ) b ON

  • 问题内容: 我正在使用内部联接在MySQL中进行选择: 有时我会在结果中得到tblcaritem.caritemid的副本。我想确保永远不要复制tblcaritem.caritemid,但是我该怎么做?我尝试使用DISTINCT,但它只是检查了整行是否重复,我只想检查tblcaritem.caritemid,有没有办法? 抱歉,如果我不能很好地解释它,那么我并不是最好的SQL查询。 问题答案:

  • 我正在使用Service Now Rest API检索服务器上的信息,该信息将作为JSON响应返回,我正在将其解码到python3字典中,这样我就可以进一步提取代码中的特定项,但我很难理解如何使用从JSON创建的嵌套字典。有人能帮我理解如何从字典中提取特定值吗。下面是一个返回的示例(缩短)。 下面是一个响应示例(缩短) 在完成了一些嵌套字典教程之后,我尝试了以下内容,但运气不太好。 TypeErr