我需要从我的OpenAPI规范中的每个方法中删除> Means <- colMeans(df)+10
> ind <- sapply(seq_along(Means), function(i) df[,i] > Means[i] )
> df[rowSums(ind*1) == ncol(df), ]
cola colb colc
6 64.03106 83.72956 81.05986
字段。
规范必须采用YAML格式,因为转换为JSON会在以后发布时引起问题。
我找不到为此准备的工具,并且我的编程能力不足。我用ruamel.yaml尝试了Python,但是什么都做不到。
我乐于接受任何有关如何解决此问题的建议-在某个地方有一个现成的工具的回购,有关在Python中尝试使用什么的提示...我的想法不对。
也许是一个正则表达式可以捕获所有tags
实例的所有情况,所以我可以进行搜索并用Python替换,而不用什么替换它们?空行似乎不会破坏发布引擎。
这是一个样例YAML(我知道这不是适当的规范,只想显示YAML tags
的位置)
tags
我需要完全摆脱所有openapi: 3.0.0
info:
title: ""
description: ""
paths:
/endpoint
get:
tags:
-
tag1
-
tag3
#rest of GET definition
post:
tags:
- tag2
/anotherEndpoint
post:
tags:
- tag1
数组(而不仅仅是使它们为空)
答案 0 :(得分:0)
我不确定为什么使用Python + ruamel.yaml无法实现任何目标。保证您的规格
在文件input.yaml
中:
import sys
from pathlib import Path
import ruamel.yaml
in_file = Path('input.yaml')
out_file = Path('output.yaml')
yaml = ruamel.yaml.YAML()
yaml.indent(mapping=4, sequence=4, offset=2)
yaml.preserve_quotes = True
data = yaml.load(in_file)
# if you only have the three instances of 'tags', you can hard-code them:
# del data['paths']['/endpoint']['get']['tags']
# del data['paths']['/endpoint']['post']['tags']
# del data['paths']['/anotherEndpoint']['post']['tags']
# generic recursive removal of any key names 'tags' in the datastructure:
def rm_tags(d):
if isinstance(d, dict):
if 'tags' in d:
del d['tags']
for k in d:
rm_tags(d[k])
elif isinstance(d, list):
for item in d:
rm_tags(item)
rm_tags(data)
yaml.dump(data, out_file)
其为output.yaml
:
openapi: 3.0.0
info:
title: ""
description: ""
paths:
/endpoint:
get: {}
post: {}
/anotherEndpoint:
post: {}
如果需要,您可以将data
写回input.yaml
。
请注意,通常会保留评论#rest of GET definition
,但
现在不存在,因为它在加载期间与之前的密钥相关联,并且该密钥被删除了。