繁体   English   中英

ruamel.yaml 拒绝转储科学数字

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

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