2017-04-15 189 views
1

由於希伯來語字母和文件只包含英文字母的垃圾,我無法使用json.dump編寫字典到文件。將字典寫入文件

import codecs 

if __name__ == '__main__': 
    k = dict() 
    k['tony ta'] = 4 
    k['tt '] = 5 
    l = list(k) 
    with codecs.open('text.txt', 'w', 'utf-8') as f: 
     for i in range (0, len(l)): 
      f.write('\n'+(l[i]) + ' ' + str(k[l[i]])) 

使用編解碼器我能夠正確寫入並獲得我想要的結果。對於此演示,我使用的是open。有沒有更方便的方法來做到這一點?

的text.txt
託尼TA 4
TT 5

什麼更好的方法,而不是把我的詞典列表,然後查閱字典,找到價值?

回答

1

因此,不是將字典轉換爲列表,而是將其轉換爲字符串,然後進行一些字符串操作。我不確定你是否會認爲這是一種「更好」或「更方便」的方式。

import codecs 
import re 

if __name__ == '__main__': 
    k = dict() 
    k['tony ta'] = 4 
    k['tt '] = 5 
    with codecs.open('text.txt', 'w', 'utf-8') as f: 
     f.write(re.sub(r"[{}:']",'',str(k).replace(', ','\n'))) 
1

你可以使用:

with codecs.open('text.txt', 'w', 'utf-8') as f: 
    for key in k: 
     f.write("%s %s\n", key, str(k[key]))