我想将 dict 转储到 yaml 文件中,不带引号。基本上就像一个映射
import yaml
windows_list = []
server_list = ['abc-def-01', 'pqr-str-02']
site_list = ['dev', 'prod']
server_dict = dict(zip(server_list, site_list))
for k,v in server_dict.items():
a = '{ SERVER: '+k+', SITE: '+v+' }'
windows_list.append(a)
final_dict = {'service':'something','servers': windows_list}
with open('config.yml', 'w') as yaml_file:
yaml.dump(final_dict, yaml_file, default_flow_style=False)
config.yml 的输出如下:
service: some name
servers:
- '{ SERVER: abc-def-01, SITE: dev }'
- '{ SERVER: pqr-str-02, SITE: prod }'
我不想要它周围的引号。我希望它是一个不带引号的映射
期望的输出
service: some name
servers:
- { SERVER: abc-def-01, SITE: dev }
- { SERVER: pqr-str-02, SITE: prod }
我读到this post它说如果你有特殊字符就不可能删除引号,但我想知道是否有某种解决方法来实现我想要的。
最佳答案
试试这个:
for k,v in server_dict.items():
a = { 'SERVER': f'{k}', 'SITE': f'{v}' }
windows_list.append(a)
final_dict = {'service':'something','servers': windows_list}
with open('config.yml', 'w') as yaml_file:
yaml.dump(final_dict, yaml_file, default_flow_style=False)
它将以 yaml 格式/结构准确生成您需要的内容:
servers:
- SERVER: abc-def-01
SITE: dev
- SERVER: pqr-str-02
SITE: prod
service: something
HTH
关于python - Yaml 转储 python 字典作为不带单引号的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63111519/