打印非ASCII字符

时间:2018-08-31 09:22:49

标签: python python-2.7

我有一个具有非ascii值的JSON:

my_json =  { 'mykey': 'bbür'}

我正在尝试打印或显示此JSON,我看到的是:

print my_json 
{'mykey': 'bb\xc3\xbcr'}

我要打印或显示为:

{ 'mykey': 'bbür'}

我用谷歌搜索并尝试了以下操作,但似乎不起作用:

print unicode(my_json).encode('utf-8')
print unicode(my_json).decode('utf-8')
print unicode(my_json).encode('ascii')
print unicode(my_json).encode('ascii')
print ord(j['mykey'])

1 个答案:

答案 0 :(得分:0)

首先,my_json不是json,而是Python dict。 打印Python dict意味着打印dict.__str__()方法的结果。

如果您真的想按自己的方式打印此字典,则可以潜在地制作dict的子类并覆盖__str__方法:

# coding: utf8

class MyDict(dict):
    def __str__(self):
        kv_pairs = ('"%s": "%s"' % (key, val) for key, val in self.iteritems())
        return '{%s}' % ', '.join(kv_pairs)


my_json =  {'mykey': 'bbür'}

print MyDict(my_json)  # {"mykey": "bbür"}

但是,我不建议这样做。您应该宁愿创建一个函数来按照自己的方式显示命令。