Как сериализовать экранированные строки в списке - PullRequest
1 голос
/ 09 июля 2019

Я пытаюсь создать документ политики .yml для AWS. Проблема в том, что мой список строк заключен в двойные кавычки "", когда я пытаюсь избежать этого сам, т.е.
- "'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)

1 Ответ

0 голосов
/ 09 июля 2019

Используйте 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="'")
...