Python 3.x 如何序列化列表中的转义字符串

Python 3.x 如何序列化列表中的转义字符串,python-3.x,list,serialization,pyyaml,Python 3.x,List,Serialization,Pyyaml,我正在尝试为AWS创建一个.yml策略文档。问题是,当我自己尝试转义字符串时,字符串列表被双引号“”包围,即 -“'acm:AddTagsToCertificate'” 当我什么也不做时,它显示为 -acm:AddTagsToCertificate 问题是我需要.yml中的最终结果看起来像 -'acm:AddTagsToCertificate' 就我自己的故障排除而言,我尝试过使用双引号和单引号。我还尝试将列表子类化,以覆盖列表的序列化方式,直到其他SO答案表示不赞成 下面是显示我的问题的简化代

我正在尝试为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)
转储中使用
default\u style=“”

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="'")
转储中使用
default\u style=“”

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="'")


这不是你的问题,但是Python不需要
。它只用于在一行上执行语句。是的,这是因为我的代码与需要分号的语言保持一致。个人住所你确定你真的需要
而不是
?targetsystem会抱怨吗?yaml中的字符串不需要。。。如果它们不包含特殊内容或看起来像数字/日期。。。帕特里卡特纳不知道这一点。我要离开我的工作已经有的模板,匹配它们的格式。我将尝试在没有引号的情况下进行验证,看看会发生什么。在阅读您的评论时,我注意到第一个结果的问题是,它有双引号和单引号。我需要一个或另一个,不是两个都需要。单身是首选,因为这是目前工作中使用的风格。我在没有任何引用的情况下尝试了它,到目前为止,结果是有效的。这不是你的问题,但是Python不需要
。它只用于在一行上执行语句。是的,这是因为我的代码与需要分号的语言保持一致。个人住所你确定你真的需要
而不是
?targetsystem会抱怨吗?yaml中的字符串不需要。。。如果它们不包含特殊内容或看起来像数字/日期。。。帕特里卡特纳不知道这一点。我要离开我的工作已经有的模板,匹配它们的格式。我将尝试在没有引号的情况下进行验证,看看会发生什么。在阅读您的评论时,我注意到第一个结果的问题是,它有双引号和单引号。我需要一个或另一个,不是两个都需要。单身是首选,因为这是目前工作中使用的风格。我在没有任何引用的情况下尝试了它,到目前为止,结果是有效的。这确实让我更接近我正在寻找的格式,并且用引用解决了问题。谢谢!如果它解决了这个问题,请不要忘记将其标记为答案:)有趣的是,它解决了一个简单的示例,但在格式化实际的人类可读的cloudformation模板时引入了问题。您是否了解库中到底发生了什么导致问题?我想我只是不理解库是如何进行格式化的。我以前试过查看文档,但发现它不合适。云形成完全不是有效的YAML(至少在需要这种格式的情况下是无效的)。
yaml
模块是为yaml设计的,非常适合于此,但是如果您试图遵守云形成模板语义,那么您将需要一些东西。尽管如此,您确定需要单引号吗。这确实让我更接近我正在寻找的格式,并通过引用解决了这个问题。谢谢!如果它解决了这个问题,请不要忘记将其标记为答案:)有趣的是,它解决了一个简单的示例,但在格式化实际的人类可读的cloudformation模板时引入了问题。您是否了解库中到底发生了什么导致问题?我想我只是不理解库是如何进行格式化的。我以前试过查看文档,但发现它不合适。云形成完全不是有效的YAML(至少在需要这种格式的情况下是无效的)。
yaml
模块是为yaml设计的,非常适合于此,但是如果您试图遵守云形成模板语义,那么您将需要一些东西。尽管如此,您确定需要单引号吗。