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