Python:
YAML के साथ काम करना

कैसे:

Python में YAML को पढ़ने और लिखने के लिए आमतौर पर एक तृतीय-पक्ष पुस्तकालय का उपयोग होता है, PyYAML सबसे लोकप्रिय होता है। शुरू करने के लिए, आपको PyYAML को स्थापित करने के लिए pip install PyYAML चलाना होगा।

उदाहरण: एक YAML फ़ाइल में लिखना

import yaml

 = {'एक सूची': [1, 42, 3.141, 1337, 'मदद', u'€'],
        'एक स्ट्रिंग': 'बू!',
        'एक अन्य डिक्शनरी': {'फू': 'बार', 'की': 'मान', 'उत्तर': 42}}

with open('example.yaml', 'w') as f:
    yaml.dump(, f, default_flow_style=False)

# इससे `example.yaml` फ़ाइल बनती है जिसमें डेटा YAML प्रारूप में संरचित होता है।

उदाहरण: एक YAML फ़ाइल से पढ़ना

import yaml

with open('example.yaml', 'r') as f:
    data_loaded = yaml.safe_load(f)

print(data_loaded)

# आउटपुट: 
# {'एक सूची': [1, 42, 3.141, 1337, 'मदद', '€'],
#  'एक स्ट्रिंग': 'बू!',
#  'एक अन्य डिक्शनरी': {'फू': 'बार', 'की': 'मान', 'उत्तर': 42}}

कॉन्फिगरेशन के लिए YAML का उपयोग करना

बहुत से प्रोग्रामर YAML का उपयोग एप्लिकेशन कॉन्फिगरेशन्स को प्रबंधित करने के लिए करते हैं। यहां एक उदाहरण दिया गया है कि कैसे किसी कॉन्फिग फ़ाइल को स्ट्रक्चर किया जा सकता है और इसे पढ़ा जा सकता है:

config.yaml:

database:
  होस्ट: localhost
  पोर्ट: 5432
  उपयोगकर्ता_नाम: admin
  पासवर्ड: secret

Python में कॉन्फिग फ़ाइल को पढ़ना:

import yaml

with open('config.yaml', 'r') as f:
    config = yaml.safe_load(f)

print(config['database']['होस्ट'])  # आउटपुट: localhost

जटिल संरचनाओं को संभालना

जटिल संरचनाओं के लिए, PyYAML आपको कस्टम पायथन ऑब्जेक्ट्स को परिभाषित करने की अनुमति देता है। हालाँकि, मनमाने फ़ंक्शंस या ऑब्जेक्ट्स को निष्पादित करने से बचने के लिए safe_load का उपयोग करके सुरक्षित प्रथाओं को सुनिश्चित करें।

import yaml

# एक पायथन ऑब्जेक्ट परिभाषित करें
class Example:
    def __init__(self, ):
        self. = 

# कस्टम कंस्ट्रक्टर
def constructor_example(loader, node):
     = loader.construct_scalar(node)
    return Example()

# टैग "!example" के लिए कंस्ट्रक्टर जोड़ें
yaml.add_constructor('!example', constructor_example)

yaml_str = "!example 'डेटा'"
loaded = yaml.load(yaml_str, Loader=yaml.FullLoader)

print(loaded.)  # आउटपुट: डेटा

इस स्निपेट में, !example एक कस्टम टैग है जो एक YAML स्ट्रिंग से ‘डेटा’ मान के साथ एक Example ऑब्जेक्ट को इंस्टैंटिएट करता है। ऐसे कस्टम लोडर PyYAML की लचीलेपन को बढ़ाते हैं, जिससे अधिक जटिल डेटा संरचनाओं और प्रकारों को संसाधित करना संभव होता है।