可以通过覆盖PrettyPrinter对象的格式方法,并将任何unicode对象转换为字符串来完成:
import pprint
def my_safe_repr(object, context, maxlevels, level):
typ = pprint._type(object)
if typ is unicode:
object = str(object)
return pprint._safe_repr(object, context, maxlevels, level)
printer = pprint.PrettyPrinter()
printer.format = my_safe_repr
printer.pprint({u'foo': u'bar', u'baz': [u'apple', u'orange', u'pear', u'guava', u'banana'], u'hello': u'world'})
这使:
{'baz': ['apple', 'orange', 'pear', 'guava', 'banana'],
'foo': 'bar',
'hello': 'world'}