2013-05-14 49 views
1

我想存儲每個具有5個屬性的名稱。例如:Python正確的方式來存儲數據

name=apple 
attributes=[red,sweet,soft,fruit,healthy] 

每個名稱和屬性都將由用戶輸入。可以有多達數百個條目。目前,我所知道的存儲值的唯一方法是將其寫入到一個文本文件是這樣的:

lines=[] 
lines.append('{}|{}|{}|{}|{}|{} \n'.format(apple,red,sweet,soft,fruit,healthy)) 
myfile=open("test","a") 
myfile.writelines(lines) 
myfile.close() 

所以,當我想要檢索的價值,我必須使用分裂(「|」)命令單獨拆分每個行是這樣的:

for lines in open('test'): 
    lines_splitted=lines.split('|') 
if lines_splitted[0]=='apple': 
    do something 

有沒有更好的方法來存儲比我上面還做了其他的數據?我希望只需通過調用項目名稱(例如蘋果)就可以輕鬆檢索屬性。對於您的信息,我自學成才,我只知道python。所以,我正在尋找一種方法,只能在python中完成。沒有第三方或其他語言。

回答

6

您正在尋找的一般術語是系列化,這對搜索SO或Google有幫助。

對於正常情況,在Python中執行此操作的最簡單方法是使用廣受認可的JSON格式,該格式由標準庫json模塊支持。

+0

什麼讓你比其他選項更喜歡json,例如csv? – 2013-05-14 03:55:32

+0

兩者同樣有效並有其用途。 Json似乎是編程中的新事物,對於嵌套結構和傳輸這些數據特別有用,而CSV則更加嚴格,具有類似於表格的結構。 – 2013-05-14 03:57:34

+0

一般來說,靈活性(也就是「csv」並非真正的單一格式,而是表格數據格式化方式的模糊描述;有很多變體)。然而,在OP的情況下,「表格數據」可能很適合。標準庫「csv」模塊也支持CSV,該模塊可處理大量標準變體IIRC。 – 2013-05-14 03:57:54

相關問題