第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 yaml 無法按預(yù)期加載值?

為什么 yaml 無法按預(yù)期加載值?

翻過高山走不出你 2023-04-25 16:59:58
我用下一個最小的例子來解釋我的問題:test.py#! /usr/bin/python3import jinja2import yamlfrom yaml import CSafeLoader as SafeLoaderdevices = [    "usb_otg_path: 1:8",    "usb_otg_path: m1:8",    "usb_otg_path: 18",]for device in devices:    template = jinja2.Template(device)    device_template = template.render()    print(device_template)    obj = yaml.load(device_template, Loader=SafeLoader)    print(obj)運(yùn)行結(jié)果為:root@pie:~# python3 test.pyusb_otg_path: 1:8{'usb_otg_path': 68}usb_otg_path: m1:8{'usb_otg_path': 'm1:8'}usb_otg_path: 18{'usb_otg_path': 18}您可以查看 的值是否device_template為usb_otg_path: 1:8,然后 之后yaml.load變?yōu)椋雌饋硐褚驗(yàn)槲覀冊谄渲?。但其?2 個輸入沒問題。1:868:你知道上面是一個復(fù)雜系統(tǒng)的簡化,其中"usb_otg_path: 1:8"是我無法更改的輸入值,也是yaml.load它用于將字符串更改為 python 對象的基本機(jī)制。然后,如果可能的話,我可以做{'usb_otg_path': '1:8'}一些小的改變(我們需要向上游到那個項(xiàng)目,所以可能不能做大的改變來影響其他人)?諸如更改任何參數(shù)yaml.load或其他內(nèi)容之類的東西?
查看完整描述

1 回答

?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個贊

YAML 允許數(shù)字文字(標(biāo)量)格式化為x:y:z并將它們解釋為“六十進(jìn)制”,也就是說:基數(shù) 60。

1:8因此被 YAML 解釋為1*60**1 + 8*60**0,顯然給了你68。

值得注意的是,您還有m1:8一個字符串和18一個數(shù)字。你聽起來像你想要所有的字符串?這個答案可能有用:

yaml.load(yaml, Loader=yaml.BaseLoader)

這會禁用自動值轉(zhuǎn)換,因?yàn)?BaseLoader“不解析或支持任何標(biāo)簽,只構(gòu)造基本的 Python 對象:列表、字典和 Unicode 字符串?!?/p>


查看完整回答
反對 回復(fù) 2023-04-25
  • 1 回答
  • 0 關(guān)注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號