Python: 强制 pprint 将 unicode 字符串显示为字符串?
Python: Force pprint to display unicode strings as strings?
我正在用 unicode 字符串漂亮地打印一些数据结构(读取 json 输入的产物)并且更愿意将结果视为字符串(即 'foo')而不是 unicode字符串(即 u'foo').
如何在 Python pprint 模块中实现这一点?
>>> pprint.pprint(u'hello') # would prefer to see just 'hello'
u'hello'
您可以创建自己的 PrettyPrinter
对象并覆盖
format
方法。
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'
我正在用 unicode 字符串漂亮地打印一些数据结构(读取 json 输入的产物)并且更愿意将结果视为字符串(即 'foo')而不是 unicode字符串(即 u'foo').
如何在 Python pprint 模块中实现这一点?
>>> pprint.pprint(u'hello') # would prefer to see just 'hello'
u'hello'
您可以创建自己的 PrettyPrinter
对象并覆盖
format
方法。
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'