[英]ruamel.yaml refuses to dump a scientific number
我有一个 numpy 数组,其中包含我想使用 ruamel.yaml 转储的以科学记数法书写的数字。 但是,当我尝试执行此操作时收到以下错误消息:
ruamel.yaml.representer.RepresenterError: 不能代表 object: 2.702069928616081e-06
我尝试使用 numpy 中的astype(str)
将其转换为字符串,但它没有解决问题。
ruamel.yaml
以科学计数法加载或转储浮点数没有问题,既不使用 C 库也不在往返模式下:
import sys
import ruamel.yaml
yaml_str = """\
- 2.702069928616081e-06
"""
for typ in ['safe', 'rt']:
yaml = ruamel.yaml.YAML(typ=typ)
yaml.default_flow_style = False
data = yaml.load(yaml_str)
print('Python:', typ, type(data[0]))
print(data)
print('YAML:')
yaml.dump(data, sys.stdout)
这使:
Python: safe <class 'float'>
[2.702069928616081e-06]
YAML:
- 2.702069928616081e-06
Python: rt <class 'ruamel.yaml.scalarfloat.ScalarFloat'>
[2.702069928616081e-06]
YAML:
- 2.702069928616081e-06
如果没有您的实际(最小)程序来重现此内容,则没有进一步的迹象表明您可能做错了什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.