【发布时间】:2019-11-19 04:50:59
【问题描述】:
我正在尝试为 AWS 编写 .yml 策略文档。问题是当我尝试自己转义时,我的字符串列表被双引号 "" 包围,即
- “'acm:AddTagsToCertificate'”。
当我什么都不做时,它显示为
- acm:AddTagsToCertificate。
问题是我需要 .yml 中的最终结果看起来像
- 'acm:AddTagsToCertificate'
就我自己的故障排除而言,我尝试过使用双引号和单引号。我还尝试对列表进行子类化以覆盖列表的序列化方式,直到其他 SO 答案表示不赞成。
这是显示我的问题的简化代码
import yaml;
data = {'apigateway:CreateDeployment': 6}
actions = [];
for key in data:
key = "\'" + key + "\'"
print(key)
actions.append(key);
with open('test.yml', 'w') as output:
yaml.dump(actions, output, default_flow_style=False)
【问题讨论】:
-
不是你的问题,但 Python 不需要
;。它只是用来在一行上做语句。 -
是的,这只是因为我的代码与需要分号的语言保持一致。个人习惯
-
你确定你真的需要
'而不是"吗?目标系统是否抱怨? yaml 中的字符串都不需要...如果它们不包含特殊内容或看起来像数字/日期...而您的则不需要。, -
@PatrickArtner 不知道。我正在使用我的工作已经使用的模板,以匹配它们的格式。我会尝试在没有引号的情况下进行验证,看看会发生什么。
-
我在阅读您的评论时注意到的一件事是第一个结果的问题是它同时具有双引号和单引号。我需要一个或另一个,而不是两者。 Single 是首选,因为这是当前工作中使用的样式。我确实在没有任何引用的情况下尝试过,结果到目前为止有效。
标签: python-3.x list serialization pyyaml