如果只有“ success” ='true'的值,我需要从JSON下面解析“ order”,否则会引发异常。
尝试过以下方法,但不确定如何在尝试中包括“ true”检查:
{
"success":true,
"order":"123345"
}
下面是我正在尝试的代码,它也不会从打印中得到任何结果。
import json
from pprint import pprint
data = json.load(open('data.json'))
#pprint(data)
try:
check_key = data['success']
except KeyError:
#continue
print(check_key)
#print(data['order'])
答案 0 :(得分:1)
您应该在某种条件下评估数据['成功'],是否为假,然后引发异常。
import json
data = json.load(open('data.json'))
if data['success'] is not True:
raise Exception("Success is false")
order = data['order']
print(order)
答案 1 :(得分:0)
如果只有“ success” ='true'的值,我需要从JSON下面解析“ order”,否则会引发异常。
如果值为False,没有函数会自动引发异常。你需要自己写。
但这很简单:
check_key = data.get('success')
if not check_key:
raise MyKindOfError(f'response success was {check_key}')
do_stuff(data['order'])
(您实际上不需要在那里使用get
;您可以可以让data['success']
引发KeyError
(如果不存在的话,然后单独检查)虚假的值并引发您自己的错误。但是我假设您可能想像处理success
一样处理缺失的false
,而您要提出的错误可能不是{{1} },这种情况比较简单。)
作为旁注,您已经在此时解析了JSON 。您拥有的是KeyError
。
它最初来自解析JSON的事实没有任何区别;它是一个普通的旧Python dict
,具有与其他dict
相同的方法等。因此,想到“如何使用JSON ...”确实没有帮助;只会使您忘记使用dict
有多么容易。