Python YAML sang SimpleNamespace

Tóm lại, SimpleNamespace đơn giản là không hỗ trợ trường hợp sử dụng này. Nhưng không sao đâu. Chúng tôi có thể mở rộng SimpleNamespace và xây dựng chức năng này cho chính mình

Định nghĩa
from types import SimpleNamespace
my_namespace = SimpleNamespace[a=1, b=2, c=3]

my_namespace.a # 1
my_namespace.b # 2
my_namespace.c # 3
0


from types import SimpleNamespace

# this is how SimpleNamespace looks when output
SimpleNamespace[**my_dict]
# namespace[a={'d': 4}, b=2, c=3, e=[5, 6, 7, {'f': 8}]]

class RecursiveNamespace[SimpleNamespace]:

  @staticmethod
  def map_entry[entry]:
    if isinstance[entry, dict]:
      return RecursiveNamespace[**entry]

    return entry

  def __init__[self, **kwargs]:
    super[].__init__[**kwargs]
    for key, val in kwargs.items[]:
      if type[val] == dict:
        setattr[self, key, RecursiveNamespace[**val]]
      elif type[val] == list:
        setattr[self, key, list[map[self.map_entry, val]]]

# this is how RecursiveNamespace looks when output
RecursiveNamespace[**my_dict]
# RecursiveNamespace[
#    a=RecursiveNamespace[d=4], 
#    b=2, 
#    c=3, 
#    e=[5, 6, 7, RecursiveNamespace[f=8]]]

Vì vậy, những gì đang xảy ra ở đây? . Trong phương thức khởi dựng của

from types import SimpleNamespace
my_namespace = SimpleNamespace[a=1, b=2, c=3]

my_namespace.a # 1
my_namespace.b # 2
my_namespace.c # 3
3, chúng ta gọi phương thức khởi tạo của SimpleNamespace. Sau đó, chúng tôi chỉ cần xem qua từ điển của mình và đối với giá trị cũng là từ điển hoặc danh sách, chúng tôi khởi tạo giá trị đó với
from types import SimpleNamespace
my_namespace = SimpleNamespace[a=1, b=2, c=3]

my_namespace.a # 1
my_namespace.b # 2
my_namespace.c # 3
0. tà đà

Làm cách nào để phân tích cú pháp tệp YAML trong Python?

Ví dụ đọc tệp Yaml mẫu .
Đầu tiên nhập mô-đun yaml bằng cách sử dụng câu lệnh nhập
Đọc tệp bằng phương pháp mở
phương thức safe_load đọc nội dung tệp và chuyển đổi nó thành đối tượng python từ điển
kèm theo tập tin đọc thử và mong đợi khối xử lý ngoại lệ

Trình phân tích cú pháp Python YAML tốt nhất là gì?

Trình phân tích cú pháp YAML của python được sử dụng nhiều nhất là PyYAML , một thư viện cho phép bạn tải, phân tích cú pháp và viết YAML, giống như JSON của Python .

PyYAML có giống với YAML không?

YAML là định dạng tuần tự hóa dữ liệu được thiết kế để con người có thể đọc được và tương tác với các ngôn ngữ kịch bản. PyYAML là trình phân tích cú pháp YAML và trình phát cho ngôn ngữ lập trình Python .

Làm cách nào để chuyển đổi dict thành đối tượng Python?

Phương pháp 1. Sử dụng mô-đun json. Chúng ta có thể giải quyết vấn đề cụ thể này bằng cách nhập mô-đun json và sử dụng hook đối tượng tùy chỉnh trong json. phương thức load[] .

Chủ Đề