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