尝试将字符串打印为yaml,例如-"'*'"
。
CORS = '\"\'*\'\"' .
globals_res = {'API': {'Cors': {'AllowMethods': CORS,
'AllowHeaders': CORS,
'AllowOrigin': CORS}
}
print(yaml.safe_dump(jl,default_flow_style=False))
结果
API:
Cors:
AllowHeaders: ' "''*''" '
AllowMethods: ' "''*''" '
AllowOrigin: ' "''*''" '
必须为
API:
Cors:
AllowMethods: "'*'" .
AllowHeaders: "'*'" .
AllowOrigin: "'*' .
答案 0 :(得分:0)
我认为答案是仅使用"'*'"
为了展示如何获取其他字符串,我通过执行以下操作生成了一个包含所需YAML输出("'*'"
)的虚拟YAML文档:
document = ''' "'*'" '''
然后使用PyYAML
包进行加载:
import yaml
x = yaml.load(document)
然后我可以使用以下显示:
print(repr(x))
输出我需要的常量("'*'"
)。然后可以通过以下方式将其用于生成有效文件:
allow_all = "'*'"
cors = {
"AllowMethods": allow_all,
"AllowHeaders": allow_all,
"AllowOrigin": allow_all,
}
apisettings = {"Globals": {"Api": {"Cors": cors}}}
print(yaml.dump(apisettings))
这给了我
Globals:
Api:
Cors: {AllowHeaders: '''*''', AllowMethods: '''*''', AllowOrigin: '''*'''}
实际上与您所追求的相同,但是您需要阅读YAML规范以了解如何escape scalars。您可以这样做来放心:
yaml.load("'''*'''")
并再次获得"'*'"
。