我有以下测试程序:
from random import choice
d = { }
def data(length):
alphabet = 'abcdefghijklmnopqrstuvwxyz'
res = ''
for _ in xrange(length):
res += choice(alphabet)
return res
# Create the test data
for cnt in xrange(10):
key = 'key-%d' % (cnt)
d[key] = data(30)
def pprint_shorted(d, max_length):
import pprint
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(d)
pprint_shorted(d, 10)
目前的输出如下:
^{pr2}$在我的生产数据中,有时字符串的长度是真的长(例如,几千个字符来自base64
编码的附件),我不想让它填满我的日志。我想要点像:
{ 'key-0': 'brnneqgetv...',
'key-1': 'qjzrklrdky...',
'key-2': 'ayddiaxhvg...',
'key-3': 'rmjpzxrmbo...',
'key-4': 'botfczymsz...',
'key-5': 'norifblhtv...',
'key-6': 'tiiubgdwxn...',
'key-7': 'badgwbrrqu...',
'key-8': 'wulrfkqfqq...',
'key-9': 'gzlwfvjrev...'}
也就是说,dict中长度为>;max_length
的字符串值必须替换为省略号。在pretty print
中是否有任何内置支持,或者我必须通过手动遍历dict并自己缩短字符串来创建dict的副本?在
您可以将
PrettyPrinter
子类化并重写方法_format
:打印:
^{pr2}$相关问题 更多 >
编程相关推荐