1
我有一個簡單的Python 2.7.12腳本運行在Linux和OSX提供相同的輸出。在轉儲期間使用ruamel時,布爾值的值似乎轉換爲全部小寫。作爲字段轉換爲不帶引號字符串的測試,不存在大小寫轉換。ruamel.yaml轉儲不保留布爾值的情況下
文件:test.yml
namespace: default
testapp_appname: testapp
images:
testapp:
path: "foo/testapp"
tag: "202120810083053-1.2.3"
testapp_replicas: 1
testapp_monitoring_enabled: False
testapp_node_selector: ""
我簡單的測試腳本:
import ruamel
import sys
from ruamel.yaml import YAML
yaml = YAML()
def main():
config_path = "test.yml"
image = "testapp"
timestamp = "202120810083053-"
version = "1.2.3"
config = ruamel.yaml.round_trip_load(open(config_path), preserve_quotes=True)
config['images'][image]['tag'] = "{}{}".format(timestamp, version)
ruamel.yaml.round_trip_dump(config, sys.stdout)
if __name__ == "__main__":
main()
輸入:
testapp_monitoring_enabled: False
輸出:
testapp_monitoring_enabled: false
感謝有關混合調用的說明。粉筆它從SO複製/粘貼。這被證實能夠讓我的布爾變得更好,並且按照我們的需要進行格式化。 – TripodNH
順便說一句,如果你想刪除最後一個新的API,你應該這樣做:'yaml.dump(config,sys.stdout,transform = lambda data:data.rstrip())' – Anthon
它就像你讀我的心靈因爲我試圖找出如何用新的API來做到這一點。所以我的命令'yaml.dump(config,stream = open(config_path,'w'),transform = lambda data:data.rstrip())'完全符合我的要求。 – TripodNH