簡體   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