Python:
การทำงานร่วมกับ TOML

วิธีการ:

ก่อนที่จะเริ่ม ต้องติดตั้งแพคเกจ toml กับคำสั่ง pip install toml มาลองแปลงไฟล์ TOML:

import toml

# เนื้อหา TOML ตัวอย่างในรูปแบบสตริง
toml_string = """
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00Z # วันที่ระดับแรก

[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
"""

# แปลงสตริง TOML
parsed_toml = toml.loads(toml_string)

# การเข้าถึงข้อมูล
print(parsed_toml['owner']['name'])  # ผลลัพธ์: Tom Preston-Werner
print(parsed_toml['database']['ports'])  # ผลลัพธ์: [8001, 8001, 8002]

ลงลึก

TOML ถูกสร้างขึ้นโดย Tom Preston-Werner, หนึ่งในผู้ก่อตั้ง GitHub, เป็นรูปแบบไฟล์การกำหนดค่าที่เป็นมิตรกับผู้ใช้มากขึ้น ถูกออกแบบมาเพื่อแมปอย่างไม่กำกวมไปยังตารางแฮช และสามารถถูกแปลงโดยเครื่องจักรได้อย่างง่ายดาย

เมื่อเทียบกับ JSON, TOML มีความสามารถอ่านได้มากขึ้นสำหรับไฟล์การกำหนดค่า และรองรับคอมเมนต์ YAML, อีกหนึ่งทางเลือก, อาจมีความกระชับมากขึ้น แต่การพึ่งพาการเยื้องและปัญหาละเอียดอ่อน เช่น การที่ไม่อนุญาตให้ใช้แท็บ อาจทำให้ผู้คนสะดุดได้

สำหรับรายละเอียดการทำงาน, ค่า TOML มีการกำหนดประเภท, ซึ่งรวมถึงสตริง, จำนวนเต็ม, จำนวนทศนิยม, ค่าบูลีน, วันที่เวลา, อาร์เรย์, และตาราง ทุกอย่างมีความสำคัญของตัวพิมพ์ใหญ่เล็ก นอกจากนี้, TOML รองรับสตริงหลายบรรทัด และตามเวอร์ชันล่าสุด, ยังอนุญาตให้มีอาร์เรย์ที่มีประเภทต่างกันในอาร์เรย์เดียวกันได้

Python ใช้ไลบรารี toml, ซึ่งสะท้อนไปยังไลบรารี JSON และ YAML ในแง่ของ API คุณมี toml.load และ toml.loads สำหรับอ่าน TOML จากไฟล์หรือสตริง ตามลำดับ, และ toml.dump และ toml.dumps สำหรับเขียนมันออกมา

ดูเพิ่มเติม

  • ที่เก็บ GitHub อย่างเป็นทางการสำหรับสเปค TOML: github.com/toml-lang/toml
  • เอกสารของไลบรารี toml Python: pypi.org/project/toml/
  • ตัวอย่างในชีวิตจริงของ TOML: ไฟล์การกำหนดค่าสำหรับตัวจัดการแพคเกจของ Rust cargo หรือเครื่องมือการจัดการแพคเกจของ Python poetry.