我有一个具有非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'])
答案 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"}
但是,我不建议这样做。您应该宁愿创建一个函数来按照自己的方式显示命令。