Swagger 自定义标签删除 Python
Swagger Custom Tag Removal Python
我有一个 swagger 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",
"Tag3"
],
.
.
.
}
},
"/api/v1/entities": {
"post": {
"tags": [
"Tag2",
"Tag3"
]
.
.
.
}
}
}
我想从顶级标签列表和所有单独的路径中删除列表中的标签,例如:["Tag3", "Tag5"]。
您可以迭代 JSON 两次。
第一次迭代并检查哪些标签保存为列表(例如将它们存储在列表中)
然后在第二次迭代中删除出现在您保存的列表中的每个标签
简单的迭代和过滤:
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]
我有一个 swagger 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",
"Tag3"
],
.
.
.
}
},
"/api/v1/entities": {
"post": {
"tags": [
"Tag2",
"Tag3"
]
.
.
.
}
}
}
我想从顶级标签列表和所有单独的路径中删除列表中的标签,例如:["Tag3", "Tag5"]。
您可以迭代 JSON 两次。 第一次迭代并检查哪些标签保存为列表(例如将它们存储在列表中) 然后在第二次迭代中删除出现在您保存的列表中的每个标签
简单的迭代和过滤:
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]