最后活跃于 10 months ago

這段程式碼提供了一個 YAMLProcessor 類別,負責讀取和寫入 YAML 檔案(預設為 local_data.yaml),並將其內容轉換為 pandas.DataFrame 進行處理,適用於需要以表格形式操作 YAML 資料的應用場景。

修订 78d609a0240b3bcd73c17c205f6b8b03ccea00c9

yaml_processor.py 原始文件
1# yaml_processor.py
2
3import yaml
4import pandas as pd
5import os
6
7class YAMLProcessor:
8 def __init__(self, yaml_path="local_data.yaml"):
9 """
10 處理 YAML 讀寫的類別。
11 Args:
12 yaml_path (str): YAML 檔案路徑。
13 """
14 self.yaml_path = yaml_path
15 # 如果檔案不存在,就建立一個空的
16 if not os.path.isfile(self.yaml_path):
17 with open(self.yaml_path, "w", encoding="utf-8") as f:
18 yaml.safe_dump([], f, allow_unicode=True)
19
20 def load_local_data(self):
21 """
22 從 YAML 中讀取資料並轉成 DataFrame。
23 Returns:
24 pd.DataFrame: local_data.yaml 內容。
25 """
26 with open(self.yaml_path, "r", encoding="utf-8") as f:
27 data = yaml.safe_load(f)
28 if data is None:
29 data = []
30 df = pd.DataFrame(data)
31 return df
32
33 def save_local_data(self, df):
34 """
35 將 DataFrame 內容回存到 YAML。
36 Args:
37 df (pd.DataFrame): 要存回 YAML 的 DataFrame。
38 """
39 # 將 df 轉成 list[dict] 方便寫回 YAML
40 data_list = df.to_dict(orient="records")
41 with open(self.yaml_path, "w", encoding="utf-8") as f:
42 yaml.safe_dump(data_list, f, allow_unicode=True)
43