1 回答
![?](http://img1.sycdn.imooc.com/533e4d510001c2ad02000200-100-100.jpg)
TA贡献1811条经验 获得超6个赞
您可以定义自己的函数,该函数可以在所有场景中工作,如下所示:
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 中出现以来,我就爱上了 walrus 运算符。任何寻找较低版本的人可能需要一些重复:
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 表示法。
添加回答
举报