我有哪裏字典d:的Python:編寫字典文本文件,命令列
D = {'foo':{'meow':1.23,'mix':2.34}, 'bar':{'meow':4.56, 'mix':None}, 'baz':{'meow':None,'mix':None}}
我寫了這個代碼,將其寫入到一個文本文件:
def dict2txt(D, writefile, column1='-', delim='\t', width=20, order=['mix','meow']):
import csv
with open(writefile, 'w') as f:
writer, w = csv.writer(f, delimiter=delim), []
head = ['{!s:{}}'.format(column1,width)]
for i in D[D.keys()[0]].keys(): head.append('{!s:{}}'.format(i,width))
writer.writerow(head)
for i in D.keys():
row = ['{!s:{}}'.format(i,width)]
for k in order: row.append('{!s:{}}'.format(D[i][k],width))
writer.writerow(row)
但輸出忽略order = ['mix','meow']
和文件這樣寫:
- meow mix
bar None 4.56
foo 2.34 1.23456
baz None None
如何獲得它來寫:
- mix meow
bar 4.56 None
foo 1.23456 2.34
baz None None
謝謝!
更新:感謝@SukritKalra在下面的評論中指出代碼工作正常。我只是不重新排列列標題!
該行for i in D[D.keys()[0]].keys(): head.append('{!s:{}}'.format(i,width))
應該爲for i in order: head.append('{!s:{}}'.format(i,width))
。謝謝你們!您的「訂單」變量
雖然這也有效!謝謝! –
歡迎,我愛熊貓;-) –