从python生成带有某些键和值并带有双引号的YAML文件 |
您所在的位置:网站首页 › python修改yaml文件的值 › 从python生成带有某些键和值并带有双引号的YAML文件 |
最近,Ubuntu开始与netplan一起发布。它需要yaml配置来设置网络接口。因此,例如,它需要以下yaml来设置WiFi: 代码语言:javascript复制network: version: 2 renderer: NetworkManager wifis: interface_name: access-points: "apn": password: "pwd" nameservers: addresses: [8.8.4.4, 8.8.8.8] dhcp4: true请注意,在access-points下,network_ssid_name (apn)和password字段(pwd)的值用双引号引起来。 我查看了堆栈溢出,发现了this 然而,这个解决方案需要从pip call ruamel.yaml安装一个模块。我希望使用我的python发行版中已有的PyYAML模块来实现这一点。 以下是我到目前为止尝试过的一些方法: 代码语言:javascript复制import yaml d = {'network': {'version': 2, 'renderer': 'NetworkManager', 'wifis':{'wlp58s0': {'access-points': {b'apn': {'password': b'pwd'}}}}}} with open('/home/edyza/result.yml', 'w') as yaml_file: yaml.dump(d, yaml_file, default_flow_style=False, default_style=None)此命令的输出为 代码语言:javascript复制network: renderer: NetworkManager version: 2 wifis: wlp58s0: access-points: apn: password: pwd现在,我尝试使用转义字符和其他一些东西,比如 代码语言:javascript复制import yaml d = {'network': {'version': 2, 'renderer': 'NetworkManager', 'wifis':{'wlp58s0': {'"access-points"': {'apn': {'password': "\"pwd\""}}}}}} with open('/home/edyza/result.yml', 'w') as yaml_file: yaml.dump(d, yaml_file, default_flow_style=False, default_style=None)然后输出更改为 代码语言:javascript复制network: renderer: NetworkManager version: 2 wifis: wlp58s0: '"access-points"': apn: password: '"pwd"'在不使用第三方模块的情况下,如何进行更改才能在适当的键和值处使用双引号获得所需的输出? 或者有没有其他我应该考虑的方法来生成yaml文件。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |