Python 打印非ascii字符
我有一个非ascii值的JSON: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
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,而是Pythondict
。
打印Pythondict
意味着打印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字典。