Python 打印非ascii字符

Python 打印非ascii字符,python,python-2.7,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') p

我有一个非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'])

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

如果您确实希望以您想要的方式打印此dict,您可以创建一个子类
dict
,并覆盖
\uuu str\uu
方法:

# 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"}

然而,我不建议做这样的事情。您应该创建一个函数来显示您想要的dict方式。

据我所知,在python2中这是不可能的。在Python3中,您不会遇到这样的问题,它不是“JSON”,而是python字典。