微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swagger自定义标签删除Python

如何解决Swagger自定义标签删除Python

我有一个庞大的json文件。样本:

{
  "swagger": "2.0","tags": [
  {
    "name": "Tag1"
  },{
    "name": "Tag2"
  },{
    "name": "Tag3"
  },{
    "name": "Tag4"
  }
],"paths": {
  "/api/v1/entities/{entityId}/status": {
    "post": {
      "tags": [
        "Tag1","Tag3"
      ],.
      .
      .
    }
    "get": {
      "tags": [
        "Tag1",.
      .
      .
    }
  },"/api/v1/entities": {
    "post": {
      "tags": [
        "Tag2","Tag3"
      ]
      .
      .
      .
    }
  }
}

我想从顶级标签列表以及所有单个路径中删除存在于列表中的标签,例如:[“ Tag3”,“ Tag5”]。

解决方法

简单的迭代和过滤:

updated_tags = [d for d in tags if d['name'].upper() not in (tag.upper() for tag in REMOVE_TAGS)]
dict['tags'] = updated_tags
paths = shell_json['paths']
for path,httpMethods in paths.items(): 
    for httpMethod,data in httpMethods.items():
        tags = data['tags']
        data['tags'] = [x for x in tags if x not in REMOVE_TAGS]
,

您可以遍历JSON两次。 第一次迭代并检查哪些标签保留为列表(例如,将其存储在列表中) 然后在第二次迭代中,删除保存在列表中的每个标签

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。