【发布时间】:2021-11-29 14:34:01
【问题描述】:
检查.py
import os
from pathlib import Path
import sys
import json
from ruamel.yaml import YAML
yaml = YAML(pure=True)
yaml.sort_base_mapping_type_on_output = None
yaml.indent(mapping=2, sequence=4, offset=2)
def yamlCheck(file: os.PathLike):
with open(file, 'r', encoding='utf8') as yr:
data = yaml.load(yr)
print(data)
check = json.dumps(data, indent=4, ensure_ascii=False)
print(check)
if __name__ == "__main__":
yamlCheck('test.yaml')
test1.yaml,有错误。
a:
- b: 2
- 123
- 2000-12-26
test2.yaml,运行正常
a:
- b: 2
- 123
- 111-12-26
test2.yaml,运行正常
a:
- b: 2
- 123
- 2000-12-26111
runs ok表示代码运行无误,json.dumps很好地加载了OrderedDict数据。
print(data) 的输出我认为 ruamel.yaml 已将 xxxx-xx-xx 格式的数据解析为日期时间并用它构造一个日期时间对象,这会导致 json.dumps 函数的错误。
那么 ruamel.yaml 决定将值解析为 datetime 的标准是什么?
【问题讨论】:
标签: python yaml ruamel.yaml