नीचे दी गई JSON संरचना को देखते हुए, मैं sys/ शीर्ष-स्तरीय कुंजी के अस्तित्व के लिए परीक्षण करना चाहता हूं।

{                                                                                                                                                             
  "abc/": {                                                                                                                                             
    "uuid": "fd"
   },
 "sys/": {                                                                                                                                                   
    "uuid": "id2"
  }
}

मैंने jq "sys/" या jq "sys/.uuid" जैसे विभिन्न निर्माणों की कोशिश की है, लेकिन मुझे संकलन त्रुटियां और/या त्रुटियां मिलती हैं जैसे "jq: त्रुटि: sys/0 को लाइन 1 पर परिभाषित नहीं किया गया है:"

ध्यान दें कि यह महत्वपूर्ण है कि jq से परिणाम कोड ($?) वास्तविक परिणाम को प्रतिबिंबित करने के लिए सही ढंग से लौटाता है (क्योंकि इसका उपयोग कॉन्फ़िगरेशन प्रबंधन परीक्षण में किया जा रहा है)।

2
Little Code 22 जिंदा 2020, 17:05

1 उत्तर

पिछले उत्तर में जोड़ना, यह पायथन 3 में ऐसा करने का तरीका है, अगर कोई jq स्थापित करने में सक्षम नहीं है:

#!/usr/local/bin/python3

import json

obj=json.loads("""{                                               
  "abc/": {                                                              
    "uuid": "fd"
   },
 "sys/": {                                                                
    "uuid": "id2"
  }
}""")

if 'sys/' in obj:
    exit(0)
else :
    exit(1)
-2
Tomerikoo 22 जिंदा 2020, 19:45