2011-05-15 10 views
16


पर उपकरण की पहचान करें मैं उपकरण की तलाश में हूं, या उदाहरण के लिए पाइथन में शब्दकोशों को कैसे सत्यापित/कैसे करें।
उदाहरण के लिए, मैं dict है:पाइथन

test = {'foo' : 'bar', 'nested' : {'foo1' : 'bar1', 'foo2' : 'bar2'} } 

और अब मैं इसे मान्य होना चाहिए। आइए कहें, कुंजी foo के लिए मूल्य बूलियन गलत या गैर-खाली स्ट्रिंग होना चाहिए। अगला, यदि कुंजी foo1 मान bar1 है, तो वह foo21..10 श्रेणी में int होना चाहिए। मैंने ऐसा करने के लिए सरल कार्य लिखा, लेकिन यह वही नहीं है जो मैं चाहता हूं। हाँ, निश्चित रूप से, मैं if..else के साथ हर एक आइटम को dict में परीक्षण कर सकता हूं, लेकिन यदि dict>> 50 तत्व हैं, तो यह थोड़ा आरामदायक नहीं है।

क्या Python में ऐसा करने के लिए कोई अच्छा टूल/lib है? मैं पार्सर्स की तलाश नहीं कर रहा हूं, केवल तेज और इस अधिकार को करने का प्रभावी तरीका।
https://github.com/sunlightlabs/validictory
एक महान पैकेज कि एक आसान तरीका में सत्यापन में मदद करता है

+0

का उपयोग करता है यह एक दुर्लभ मामला है। मुझे लगता है कि इस विशिष्ट कार्य के लिए कोई पार्सर्स नहीं हैं। शायद आप dict पर फ़ंक्शन का उपयोग कर सकते हैं। –

+0

** यह भी देखें **: https://stackoverflow.com/questions/45346374/python-chechema-to-have-at-least-one-key – dreftymac

उत्तर

4

तुम भी नीचे दिए गए लिंक की कोशिश कर सकते है कि एक अच्छा उपकरण है pypi पैकेज जो शब्दकोश सत्यापन और मान regex सत्यापन करता है .. यह आपको यह बीमा करने की अनुमति देता है कि शब्दकोश में सभी चाबियाँ हैं और मान अपेक्षाकृत कम या कम हैं।

https://pypi.python.org/pypi/Webster

0

वेबस्टर एक है:

+1

क्योंकि यह पहले से ही स्वीकृत उत्तर के साथ एक 4 साल का सवाल था, यदि आप अधिक जानकारी देते हैं तो बेहतर होगा। क्या आप एक और अभिनव समाधान का प्रस्ताव दे रहे हैं? यदि हां कृपया इसे समझाएं। क्या आपने प्रस्तावित उदाहरण दोहराया है? – aberna

2

मैं अत्यधिक या उसके पठनीयता के लिए Cerberusjsonschema की सलाह देते हैं, क्योंकि यह JSON Schema मानक