YAML คืออะไร
YAML เป็นรูปแบบข้อมูลแบบอนุกรม (data serialization format) ออกแบบให้มนุษย์สามารถอ่านและโต้ตอบได้ด้วยภาษาสคริปต์ มีนามสกุลไฟล์เป็น .yaml, .yml
โดยมีรูปแบบเป็น
object:
attributes:
- attr1
- attr2
- attr3
methods: [ getter, setter ]
หากถูกแปลงออกเป็น json จะมีรูปแบบดังนี้
{
"object": {
"attributes": [
"attr1",
"attr2",
"attr3"
],
"methods": [
"getter",
"setter"
]
}
}
หากถูกแปลงออกมาเป็น python จะมีรูปแบบดังนี้
{'object': {'attributes': ['attr1', 'attr2', 'attr3'],
'methods': ['getter', 'setter']}}
จะเห็นได้ว่า เราสามารถเข้าใจรูปแบบข้อมูล YAML ได้ไม่ยากนักและมีระเบียบมากกว่า เมื่อเทียบกับรูปแบบข้อมูลของ json และของ Python เอง
ในการใช้งานรูปแบบข้อมูล YAML ใน Python นี้ ได้มีนักพัฒนาได้พัฒนาโมดูลที่ชื่อว่า PyYAML ใช้ License: MIT เป็นโมดูลสำหรับไว้แยกวิเคราะห์และ emitter สำหรับ YAML ใน Python
การติดตั้ง PyYAML
ใช้ pip ในการติดตั้งด้วยคำสั่ง
pip install pyyamlสำหรับบน Windows โหลดไฟล์ติดตั้งได้ที่ PyPI
การใช้งาน PyYAML
ให้ทำการ import yaml เข้ามา
ตัวอย่างที่ 1 แปลงรูปแบบข้อมูล YAML ไปเป็นรูปแบบข้อมูลของ Python
ไฟล์ test.yaml
object:
attributes:
- attr1
- attr2
- attr3
methods:
- getter
- setter
ไฟล์คำสั่ง 1.py
import yaml import pprint for project in yaml.load_all(open('test.yaml')): pprint.pprint(project)
เมื่อรัน python 1.py จะได้ผลลัพธ์
{'attributes': ['attr1', 'attr2', 'attr3'],
'methods': ['getter', 'setter'],
'๏ปฟobject': None}
ตัวอย่างที่ 2 แปลงกลับไปเป็น YAML ไม่เอารูปแบบ flow
import yaml mydata = {'object': {'attributes': ['attr1', 'attr2', 'attr3'],'methods': ['getter', 'setter']}} print(yaml.dump(mydata))
ผลลัพธ์
object:
attributes: [attr1, attr2, attr3]
methods: [getter, setter]
ตัวอย่างที่ 3 แปลงกลับไปเป็น YAML รูปแบบ flow
import yaml mydata = {'object': {'attributes': ['attr1', 'attr2', 'attr3'],'methods': ['getter', 'setter']}} print(yaml.dump(mydata, default_flow_style=False))
ผลลัพธ์
object:
attributes:
- attr1
- attr2
- attr3
methods:
- getter
- setter
ในการใช้รูปแบบข้อมูล YAML ผู้อ่านสามารถเขียนเองได้ง่าย ๆ หากผู้อ่านต้องการแปลงจาก YAML เป็นรูปแบบข้อมูลแบบ json หรือ python แบบ online ใช้ได้ที่เว็บ http://yaml-online-parser.appspot.com/
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)