繁体   English   中英

如何使用字符串值解析 yaml 文件

[英]How to parse yaml file with string values

对于下面的示例,我正在尝试读取此 yaml 文件,对其进行解析并将data标签下的包含写入新的 yaml 文件。 使用yaml.load()我无法区分字符串和 int 值。

示例 yaml 文件:

data:
    key1: "Value1"
    key2: Value2

我当前解析python代码:

import io
import yaml

test_dict={}
with open("sample-string.yaml", "r") as stream:
    try:
        f = yaml.load(stream)
        test_dict['data'] = f['data']
    except yaml.YAMLError as exc:
        print(exc)

with io.open("output.yaml", "a",encoding="utf-8") as wf:
    try:
        yaml.dump(test_dict['data'],wf,allow_unicode=True,default_flow_style=False)
    except yaml.YAMLError as exc:
        print(exc)

上面的文件产生以下输出:

key1: Value1
key2: Value2

如您所见, key1的值缺少引号,即它应该是"Value1"而不是Value1 关于如何实现这一目标的任何建议?

预期产出

key1: "Value1"
key2: Value2

报价是数据的一部分,还是只是它的表示? 如果它是数据的一部分,则必须在 yaml.xml 中指明。

data:
    key1: |
        "Value1"
    key2: Value2

请注意,在 yaml 字符串值上,引号是可选的,这意味着如果它们要成为字符串数据本身的一部分,则必须明确包含它们。

# these two documents are identical
data:
- this
- that
- the other
---
data:
- "this"
- "that"
- "the other"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM