我正在開發一個Python程序,用於以不同的待辦事項格式在列表之間同步任務 - 最初是Emacs org-mode和todo.txt。我不確定我應該用什麼數據結構來跟蹤集中表單中的任務(或者這是否是最好的方法)。以不同格式同步任務列表的數據結構
我的第一個嘗試是創建每個任務屬性的字典,其中的關鍵是任務列表中的原始行,並且該值是相關屬性的字符串。例如,我有以下字典:
#org-mode format
task_name["TODO [#C] Take out the trash"] = "Take out the trash"
priority["TODO [#C] Take out the trash"] = "C"
#todo.txt format
effort["(A) Refill Starbucks card @10min"] = 20 # meaning 20 minutes of estimated time
然後我檢查其中兩個文本文件的最近一次更新,從最近的文件中提取更改的任務,並覆蓋上的舊文件這些任務。來自任一列表的新任務都會添加到其他列表中。這些任務也都存儲在一個集中式文件中:一個CSV /製表符分隔的值文件,其中標題是任務的屬性(task_name,省力,優先級,截止日期,scheduled_date,todo_state,標籤等)和每行是一項任務。
然後我想到,也許我應該創建一個名爲「Task」的對象類,其中每個屬性都是一個屬性,而每個任務都是Task對象的一個實例,而不是一系列字典。
class Task(object):
def __init__(self, name, effort, priority):
name = self.name
effort = self.effort
priority = self.priority
最後,它發生,我認爲我可能需要使用嵌套字典或JSON格式 - 這樣的事情:
{line: "TODO [#C] Take out the trash" {
"task_name": "Take out the trash."
"priority": "C"
"todo_state": "TODO"
}}
或者我可以把任務SQLite數據庫。
哪種方法最好,還是有另一種方法比所有這些更好?我是一名中級Python開發人員,對高級數據結構和類沒有經驗,所以我很感謝您提供的任何幫助。