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 表示法。
添加回答
舉報