关于如何打印集合类型中的中文字符而不是打印出该中文的存储符问题?
请看下面一段示例,我如何才能打印出一个集合类型的中文。
>>> k='你好!' #cmd窗口下默认编码gbk>>> print k你好!>>> print repr(k) #该中文的gbk编码存储符'\xc4\xe3\xba\xc3\xa3\xa1'>>> d={'name':'你好!'} #我将此中文赋值给任意一个集合类型数据结构,如dict、list、tuple都可以,在此以dict为例>>> d{'name': '\xc4\xe3\xba\xc3\xa3\xa1'} #字典d的原始存储符>>> print d{'name': '\xc4\xe3\xba\xc3\xa3\xa1'} #我如何才能打印出{'name':'你好!'}?>>>d = {'name':'你好!'}for key in d.keys(): print '{\'%s\',\'%s\'}'%(key,d.get(key))
[解决办法]
受不了,赶紧结贴吧:
def fuckingprint(x): import re print re.sub(r'\\x[a-f\d]{2}', lambda c: c.group().decode('string_escape'), repr(x))fuckingprint({'name': '\xc4\xe3\xba\xc3\xa3\xa1'})