[英]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.