2017-07-18 55 views
0

我有這本字典;格式化帶斷行的python字典

results = {'name': sectionAddr.name, 
       'count': sampleCount, 
       'finish_count': len(finished), 
       'inside4_count': inside4Count, 
       'inside10_count': inside10Count, 
       'finish_rate': 100 * len(finished)/sampleCount, 
       'inside4_rate': 100 * inside4Count/sampleCount, 
       'inside10_rate': 100 * inside10Count/sampleCount, 
       'mean_error': meanError, 
       'stddev_error': stddevError, 
       'samples': sampleResults} 
    results['error'] = getError(results 

但我需要顯示它;如果我通過str來格式化它,它看起來像一個字符串,即一條線。我應該如何在每個變量之後斷行?

類似的東西:

results = {'name': sectionAddr.name + '\n', 
'finish_count': len(finished), ... 

不起作用,

如何我可以斷行?

+3

這是一本字典,不是一套。我假設你在任何時候都不想要一個集合,這只是一個錯誤? –

回答

1

漂亮的打印可能會滿足您的需求;

import pprint 
pprint.pprint(result) 

如果你不喜歡使用漂亮的打印;

result = {'a': '1', 
      'b': '2', 
      'c': '3'} 

print('\n'.join('\t'.join((key, result[key])) for key in result)) 

輸出;

a 1 
c 3 
b 2 
+0

Exatly,我需要,但有一個錯誤:'TypeError:列表索引必須是整數或切片,而不是字典' –

1

您可以使用pprint.pformat得到一個很好的格式化字符串:

import pprint 

results = {'name': "sectionAddr.name", 
       'count': "sampleCount", 
       'finish_count': "len(finished)", 
       'inside4_count': "inside4Count", 
       'inside10_count': "inside10Count", 
       'samples': "sampleResults"} 

s = pprint.pformat(results) 

print(s) 

輸出:

{'count': 'sampleCount', 
'finish_count': 'len(finished)', 
'inside10_count': 'inside10Count', 
'inside4_count': 'inside4Count', 
'name': 'sectionAddr.name', 
'samples': 'sampleResults'} 

或者,如果你不需要它作爲一個字符串,但要打印到直接在控制檯上,可以使用pprint.pprint

pprint.pprint(results) 

請注意,字典沒有固定順序,因此格式化字符串中的鍵可能按不同順序排列。

兩個pformatpprint接受額外的參數,所以你可以修改結果:docs

+0

謝謝,但如果我想寫入一個文件?這將是行,如何添加'\ n'? –

+0

@ E.Trofimov是否嘗試將「格式化」字符串寫入文件? –

+0

有一個html文件 –

0

的Python漂亮的打印文檔

>>> import pprint 
>>> tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', 
... ('parrot', ('fresh fruit',)))))))) 
>>> stuff = ['a' * 10, tup, ['a' * 30, 'b' * 30], ['c' * 20, 'd' * 20]] 
>>> pprint.pprint(stuff) 
['aaaaaaaaaa', 
('spam', 
    ('eggs', 
    ('lumberjack', 
    ('knights', ('ni', ('dead', ('parrot', ('fresh fruit',)))))))), 
['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'], 
['cccccccccccccccccccc', 'dddddddddddddddddddd']] 

你的用例:

import pprint 
pprint.pprint(results)