Làm thế nào để bạn đọc một giá trị từ tệp yaml trong python?

YAML [YAML Ain't Markup Language] là ngôn ngữ tuần tự hóa dữ liệu mà con người có thể đọc được. Nó thường được sử dụng cho các tệp cấu hình, nhưng nó cũng được sử dụng trong lưu trữ dữ liệu [e. g. đầu ra gỡ lỗi] hoặc truyền [e. g. tiêu đề tài liệu]

YAML vốn hỗ trợ ba loại dữ liệu cơ bản. vô hướng [chẳng hạn như chuỗi, số nguyên và số float], danh sách và mảng kết hợp

Phần mở rộng tên tệp được đề xuất chính thức cho các tệp YAML là

raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
5. Có hai mô-đun trong Python cho YAML. PyYAML và ruamel. khoai mỡ. Trong hướng dẫn này, chúng tôi sử dụng cái cũ

PyYAML

PyYAML là trình phân tích cú pháp và trình phát YAML cho Python

$ pip install pyyaml

Mô-đun được cài đặt với pip

Trong hướng dẫn này, chúng tôi sử dụng các tệp YAML sau

raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6

Chúng tôi có một vài giá trị vô hướng

cities:
  - Bratislava
  - Kosice
  - Trnava
  - Moldava
  - Trencin
---
companies:
  - Eset
  - Slovnaft
  - Duslo Sala
  - Matador Puchov

Chúng tôi có hai tài liệu trong

raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
6. Các tài liệu được phân tách bằng
raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
7

Python YAML đọc

Trong ví dụ đầu tiên, chúng tôi đọc tệp YAML

#!/usr/bin/python

import yaml

with open['items.yaml'] as f:
    
    data = yaml.load[f, Loader=yaml.FullLoader]
    print[data]

Chúng tôi mở tệp

raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
8 và tải nội dung bằng phương pháp
raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
9. Dữ liệu được in ra bàn điều khiển

$ python read_yaml.py
{'raincoat': 1, 'coins': 5, 'books': 23, 'spectacles': 2, 'chairs': 12, 'pens': 6}

Mô-đun PyYAML chuyển đổi các giá trị vô hướng thành từ điển Python

Nhiều tài liệu YAML được đọc với

cities:
  - Bratislava
  - Kosice
  - Trnava
  - Moldava
  - Trencin
---
companies:
  - Eset
  - Slovnaft
  - Duslo Sala
  - Matador Puchov
0

#!/usr/bin/python

import yaml

with open['data.yaml'] as f:
    
    docs = yaml.load_all[f, Loader=yaml.FullLoader]

    for doc in docs:
        
        for k, v in doc.items[]:
            print[k, "->", v]

Ví dụ đọc cả hai tài liệu từ tệp

raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
6

$ python read_docs.py
cities -> ['Bratislava', 'Kosice', 'Trnava', 'Moldava', 'Trencin']
companies -> ['Eset', 'Slovnaft', 'Duslo Sala', 'Matador Puchov']

Kết xuất YAML của Python

Phương thức

cities:
  - Bratislava
  - Kosice
  - Trnava
  - Moldava
  - Trencin
---
companies:
  - Eset
  - Slovnaft
  - Duslo Sala
  - Matador Puchov
2 tuần tự hóa một đối tượng Python thành luồng YAML

#!/usr/bin/python

import yaml

users = [{'name': 'John Doe', 'occupation': 'gardener'},
         {'name': 'Lucy Black', 'occupation': 'teacher'}]

print[yaml.dump[users]]

Trong ví dụ, chúng tôi có một danh sách các từ điển. Chúng tôi tuần tự hóa danh sách thành định dạng YAML bằng phương thức

cities:
  - Bratislava
  - Kosice
  - Trnava
  - Moldava
  - Trencin
---
companies:
  - Eset
  - Slovnaft
  - Duslo Sala
  - Matador Puchov
2

$ python dumping.py
- name: John Doe
  occupation: gardener
- name: Lucy Black
  occupation: teacher

Ví dụ sau ghi dữ liệu Python vào tệp YAML

#!/usr/bin/python

import yaml

users = [{'name': 'John Doe', 'occupation': 'gardener'},
         {'name': 'Lucy Black', 'occupation': 'teacher'}]

with open['users.yaml', 'w'] as f:
    
    data = yaml.dump[users, f]

Ví dụ ghi danh sách từ điển vào tệp

cities:
  - Bratislava
  - Kosice
  - Trnava
  - Moldava
  - Trencin
---
companies:
  - Eset
  - Slovnaft
  - Duslo Sala
  - Matador Puchov
4

raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
0

Chúng tôi ghi dữ liệu bằng phương pháp

cities:
  - Bratislava
  - Kosice
  - Trnava
  - Moldava
  - Trencin
---
companies:
  - Eset
  - Slovnaft
  - Duslo Sala
  - Matador Puchov
2. Tham số đầu tiên là dữ liệu, tham số thứ hai là đối tượng tệp

Các phím sắp xếp Python YAML

Chúng ta có thể sắp xếp các khóa với tham số

cities:
  - Bratislava
  - Kosice
  - Trnava
  - Moldava
  - Trencin
---
companies:
  - Eset
  - Slovnaft
  - Duslo Sala
  - Matador Puchov
6
cities:
  - Bratislava
  - Kosice
  - Trnava
  - Moldava
  - Trencin
---
companies:
  - Eset
  - Slovnaft
  - Duslo Sala
  - Matador Puchov
7

raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
1

Ví dụ đọc dữ liệu từ tệp

raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
8 và sắp xếp dữ liệu theo các khóa trong đầu ra YAML

raincoat: 1
coins: 5
books: 23
spectacles: 2
chairs: 12
pens: 6
2

Chúng tôi có thể làm việc với API cấp thấp hơn khi phân tích tệp YAML. Phương pháp

cities:
  - Bratislava
  - Kosice
  - Trnava
  - Moldava
  - Trencin
---
companies:
  - Eset
  - Slovnaft
  - Duslo Sala
  - Matador Puchov
9 quét luồng YAML và tạo mã thông báo quét

Làm cách nào để đọc các giá trị từ tệp YAML?

Tiếp theo, chúng ta cần tải tệp YAML bằng hàm safe_load có sẵn trong gói PyYAML . Từ đoạn mã trên, chúng tôi bắt đầu bằng cách nhập gói yaml. Sau đó, chúng tôi tạo một chức năng chính [bất kỳ tên nào cũng hoạt động] và đặt logic để đọc tệp yaml. Khi tệp được mở và đọc, chúng tôi gọi chức năng chính.

Làm cách nào để đọc tệp YAML dưới dạng từ điển trong Python?

Chúng ta sẽ sử dụng các hàm sau để mở và tải tệp YAML. .
mở - Chức năng này sẽ mở tệp ở chế độ đọc và lưu trữ dưới dạng luồng
khoai mỡ. safe_load - Hàm này chuyển đổi tài liệu YAML thành đối tượng Python. .
khoai mỡ. load_all - Ngoài ra, chúng ta cũng có thể sử dụng hàm load all để tải nhiều tệp yaml cùng nhau

Dữ liệu được thể hiện như thế nào trong YAML?

YAML đại diện cho cấu trúc dữ liệu sử dụng ba loại nút. dãy, ánh xạ và vô hướng .

Chủ Đề