开发者

Python print unicode strings in arrays as characters, not code points

If I've got a dictionary of the form:

a = {u"foo": u"ბარ"}

and I write

>>> print a[u"foo"]

I get

ბარ

as expected. But if I write

>>> print a

I get

{u'foo': u'\u10d1\u10d0\u10e0'}, but I would prefer the characters themselves to be printed.

All the data will ultimately get dumped into a database any开发者_如何转开发way, so it's not critical to solve this problem, but for debugging it would be nice if I could get readable output when I print the entire dictionary. Is there any way to do this?

For those who are curious, the script is Georgian, and yes, it says "bar".


This works in my terminal:

print repr(a).decode("unicode-escape")


Thomas answer is absolutely correct. I just want to add this line for everyone who wants a more readable output:

print json.dumps(a, indent=4, default=str).decode('unicode-escape')
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜