यह आश्चर्य की बात है, क्योंकि YAML के प्रयोजन के & संदर्भ एंकर वहाँ एक अंतर्निहित तरीका referenc का उपयोग कर तार जोड़ नहीं है कि, YAML डेटा फ़ाइलों से बाहर दोहराव कारक है तों। भागों से पथ नाम बनाने का आपका उपयोग मामला एक अच्छा उदाहरण है - ऐसे कई उपयोग होने चाहिए।
सौभाग्य से पाइथन में कस्टम टैग के माध्यम से वाईएएमएल में स्ट्रिंग कॉन्सटेनेशन जोड़ने का एक आसान तरीका है।
import yaml
## define custom tag handler
def join(loader, node):
seq = loader.construct_sequence(node)
return ''.join([str(i) for i in seq])
## register the tag handler
yaml.add_constructor('!join', join)
## using your sample data
yaml.load("""
user_dir: &DIR /home/user
user_pics: !join [*DIR, /pics]
""")
कौन सा में परिणाम:
{'user_dir': '/home/user', 'user_pics': '/home/user/pics'}
आप " "
या "-"
जैसी सरणी के लिए और अधिक आइटम जोड़ सकते हैं,, तार अलग किया जाएगा यदि।
स्रोत
2014-04-22 06:53:52
इसे साफ़ करने के लिए धन्यवाद। सोचने के लिए मुझे मूर्खतापूर्ण यह संभव था। –