मुझे यह जानने की जरूरत है कि क्या apistats नाम की एक कुंजी के साथ 'व्यवहार' नाम का एक शब्दकोश मेरी json फ़ाइल में मौजूद है जिसे मैं खोल रहा हूँ ताकि यदि यह मौजूद है तो मैं आगे की प्रक्रिया कर सकता हूँ, और यदि यह मौजूद नहीं है तो अगली फ़ाइल खुलती है

मैंने शर्त लगाने की कोशिश की है कि एपिस्टैट्स के साथ शब्दकोश मौजूद है या नहीं, लेकिन यह त्रुटि देता है। इसके अलावा, मैं व्यवहार में केवल प्रमुख apistats पर एक चेक नहीं डाल सकता, क्योंकि कुछ फाइलों के लिए व्यवहार शब्दकोश बिल्कुल मौजूद नहीं है

    for filename in glob.glob('*.json'):
             with open(filename) as json_file:
                      data=json.load(json_file)
                      if data['behavior']['apistats']:
                              print ('exists')
                      else:
                      print("doesn't")


    Expected:
    exists
    exists
    doesn't
    Actual Output: 
    File "C:/Users/sidra/Desktop/extractor/ectractor.py", line 12, in <module>
    if data['behavior']['apistats']:

    KeyError: 'apistats'
-1
Sidra Nisar 23 जून 2019, 15:27

1 उत्तर

सबसे बढ़िया उत्तर

आप एक शब्दकोश में एक कुंजी की जांच इस प्रकार कर सकते हैं:

if key in dictionary:
   ...

उदाहरण के लिए:

if "behavior" in data:
    if "apistats" in data["behavior"]:
        ...

या बस अपना नियंत्रण एक कोशिश में रखें - ब्लॉक को छोड़कर:

try:
    if some control that throws exception: 
       ... 

except: 
    print("does not exist")
    pass 

0
altunyurt 23 जून 2019, 15:32