2017-09-10 42 views
1

我通常使用json作爲列表,但它不適用於集合。是否有類似的功能將一個集合寫入輸出文件f?像這樣的事情,但是對於套:在Python中將一個集合寫入輸出文件

f=open('kos.txt','w') 
json.dump(list, f) 
f.close() 
+0

'set'不是json標準。你想實現什麼?持久性? –

+0

我想打印一組元組列表,這樣格式不會丟失。我可以看到的一種方法是將其更改回列表中。有沒有辦法將這個集合打印到文件中? – PolkaDot

回答

0

json不是一個具體的蟒蛇格式。它知道列表和字典,但不知道集合或元組。

但是,如果你想堅持一個純粹的Python數據集,你可以使用字符串轉換。

with open('kos.txt','w') as f: 
    f.write(str({1,3,(3,5)})) # set of numbers & a tuple 

然後再次使用ast.literal_eval

import ast 
with open('kos.txt','r') as f: 
    my_set = ast.literal_eval(f.read()) 

這也適用於集列表,其中套裏面嵌套列表...只要數據可以從字面上評估讀它。所以基本上序列化任何Python的基本對象結構與str可以解析回來。

你也可以使用了pickle模塊,但它創造的二進制數據,所以更加「不透明」,還有還有使用json道:Python sets are not json serializable。但爲了您的需要,我會堅持str/ast.literal_eval