编程语言
首页 > 编程语言> > Python:强制pprint将unicode字符串显示为字符串?

Python:强制pprint将unicode字符串显示为字符串?

作者:互联网

我正在使用unicode字符串(读取json输入的工件)打印一些数据结构,并且希望将结果看作字符串(即’foo’)而不是unicode字符串(即u’foo’).

如何在Python pprint模块中完成?

>>> pprint.pprint(u'hello')    # would prefer to see just 'hello'
u'hello'

解决方法:

您可以创建自己的PrettyPrinter对象并覆盖
格式方法.

import pprint

def no_unicode(object, context, maxlevels, level):
    """ change unicode u'foo' to string 'foo' when pretty printing"""
    if pprint._type(object) is unicode:
        object = str(object)
    return pprint._safe_repr(object, context, maxlevels, level)

mypprint = pprint.PrettyPrinter()
mypprint.format = no_unicode

这是原始和修改后的pprint的输出.

>>> pprint.pprint(u'hello')
u'hello'
>>> mypprint.pprint(u'hello')
'hello'

标签:python,pretty-print,unicode
来源: https://codeday.me/bug/20190609/1203355.html