Python中的另一个JSON /编码错误

时间:2016-11-12 14:35:53

标签: python json unicode encoding utf-8

我已多次阅读Unicode HOWTO,并多次解决类似的问题,仍然不了解如何。任何人都可以帮助我如何正确打印这个加载的json?

#!/usr/bin/env python2
# coding: utf8

import json

s = u'["poêle", "mangé"]'
print s
l = json.loads(s)
print l

我已尝试过enconding / encode / decode / unicode的每一种组合,但我可以......但是第二次打印是丑陋的:

$ python test.py
["poêle", "mangé"]
[u'po\xeale', u'mang\xe9']

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

  

要打印您的列表,请尝试从this so question

中获取以下内容

print repr(l).decode('unicode-escape')

  

此外,当您打印列表时,它会打印元素的repr

print l[0], l[1]print l不同,因此您可以始终迭代元素并打印它们。 print l[0], l[1]也会正确打印字符。

这可以帮助您理解差异

class MyClass(object):
    def __repr__(self):
        return "<repr: MyClass>"

    def __str__(self):
        return "<str: MyClass>"

l = [ MyClass(), MyClass(), MyClass() ]
print l
print l[0], l[1], l[2]
  

输出

[<repr: MyClass>, <repr: MyClass>, <repr: MyClass>]
<str: MyClass> <str: MyClass> <str: MyClass>