首页 > 解决方案 > 如何序列化列表中的转义字符串

问题描述

我正在尝试为 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-3.xlistserializationpyyaml

解决方案


用于:default_style="'"_dump

import yaml

data = {'apigateway:CreateDeployment': 6}

actions = list(data.keys())

with open('test.yml', 'w') as output:
  yaml.dump(actions, output, default_flow_style=False, default_style="'")

推荐阅读