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

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

如何在Python中將bool的字符串表示形式解析為bool?

如何在Python中將bool的字符串表示形式解析為bool?

犯罪嫌疑人X 2023-11-09 21:44:13
我需要的場景:用戶輸入True或False,默認解析為str。我無法更改解析類型,因為 python 3+ 解析為 str (使用 Python 3.8) 因此,當我解析時,bool(input('Enter True or False'))它會返回True,因為默認 bool 函數(shù)僅False在存在空字符串時返回。True否則。我有一個我需要的 json 。它有以下表示:list_of_visits ='''{"Museum": "True","Library": "True","Park": "False"}'''請注意,如果沒有引用,我無法將其表示為:list_of_visits ='''{"Museum": True,"Library": True,"Park": False}'''原因解析如下會引發(fā)錯誤:jsonic = json.loads(list_of_visits)jsonic但我在某些地方還需要從 int 和 float 進行解析,并且我無法單獨為每種類型編寫函數(shù)。我正在嘗試構(gòu)建一個一站式解決方案,它可能繼承 bool() 的功能并執(zhí)行此轉(zhuǎn)換,我可以在任何地方使用它,即解決方案不僅可以執(zhí)行傳統(tǒng)的 bool() 操作,而且還能夠解析字符串表示形式。目前我執(zhí)行以下步驟:if type(value) == str and value =='True':    reprs = Trueelif type(value) == str and value =='False':    reprs = Falseelse:    reprs = bool(value)
查看完整描述

1 回答

?
楊魅力

TA貢獻1811條經(jīng)驗 獲得超6個贊

您可以定義自己的函數(shù),該函數(shù)可以在所有場景中工作,如下所示:


def get_bool(key):

    return value if value := {'True':True, 'False':False}.get(key) else bool(key)

    

對于單個值(例如輸入),您可以將其解析為:

get_bool('False')

返回:False


對于這樣的 json,你可能會這樣做:

from toolz.dicttoolz import valmap

valmap(get_bool, jsonic)

返回:


{'Museum': 1, 'Library': 1, 'Park': 0}

    

對于 3.7 及更低版本:

自從 python 3.8 中出現(xiàn)以來,我就愛上了 walrus 運算符。任何尋找較低版本的人可能需要一些重復(fù):


def get_bool(key):

return {'True':True, 'False':False}.get(key) if  key.title() in {'True':True, 'False':False}.keys() else bool(key)

請注意,雖然它確實適用于每種情況,但您的 JSON 表示是錯誤的。JSON 可以具有布爾值,JSON 的字符串表示形式也可以。但是你必須使用 javascript 語法 astrue和false而不是 Python 的True& False。由于 JSON 是一種 JavaScript 表示法。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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