如何使Python 2.x Unicode字符串不打印为u'string'?

时间:2011-06-24 22:22:50

标签: python unicode

我目前正在测试一个以字典形式返回大量JSON数据的Web服务。这些字典的键和值都是unicode字符串,因此它们打印为

{u'key1':u'value', u'key2':u'value2'}

在交互式翻译中打印到屏幕上时。

现在想象一下,这是一个3级深度,40元素的字典。所有那些 u 字符使显示器变得杂乱,使得很难一眼就知道真实数据究竟是什么。即使使用 pprint

有没有办法告诉翻译我不关心普通字符串和unicode字符串之间的区别?我不需要或不想要 u

我发现的唯一可能有帮助的是PYTHONIOENCODING环境变量。不幸的是,将它设置为'ascii'或'latin-1'不会使那些 u 消失。

我正在使用Python 2.6,我使用常规python解释器或iPython。

2 个答案:

答案 0 :(得分:18)

如果是你想要的json,只需打印json

>>> import json
>>> print json.dumps({u'key1':u'value', u'key2':u'value2'}, indent=4)
{
    "key2": "value2", 
    "key1": "value"
}

答案 1 :(得分:0)

为什么不创建自己的函数来打印字典? Python的默认格式可以快速,轻松地进行调试,但绝对适用于3级深度,40元素的字典。