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')
精彩评论