python格式化dict輸出

來源:互聯網
上載者:User

python格式化dict輸出
如果dict裡有unicode or utf-8編碼的字串,預設是:
In [75]: dd = { 'name': u'功夫熊貓' }
In [76]: dd
Out[76]: {'name': u'\u529f\u592b\u718a\u732b'}

In [77]: dd2 = { 'name': '功夫熊貓' }
In [78]: dd2
Out[78]: {'name': '\xe5\x8a\x9f\xe5\xa4\xab\xe7\x86\x8a\xe7\x8c\xab'}

輸出中文不直觀,有一種方法是把dict轉化成josn格式的字串輸出
print simplejson.dumps(dd, ensure_ascii=False)
這種方法的缺點是不太美觀
現在介紹另一種方法

#coding=utf-8import pprint, cStringIOclass UniPrinter(pprint.PrettyPrinter):            def format(self, obj, context, maxlevels, level):        if isinstance(obj, unicode):            out = cStringIO.StringIO()            out.write('u"')            for c in obj:                if ord(c)<32 or c in u'"\\':                    out.write('\\x%.2x' % ord(c))                else:                    out.write(c.encode("utf-8"))                            out.write('"')            # result, readable, recursive            return out.getvalue(), True, False        elif isinstance(obj, str):            out = cStringIO.StringIO()            out.write('"')            for c in obj:                if ord(c)<32 or c in '"\\':                    out.write('\\x%.2x' % ord(c))                else:                    out.write(c)                            out.write('"')            # result, readable, recursive            return out.getvalue(), True, False        else:            return pprint.PrettyPrinter.format(self, obj,                context,                maxlevels,                level)        #UniPrinter().pprint({ u'k"e\\y': u'我爱ä¸*国人' })print { 'name': u'功夫熊貓' }UniPrinter().pprint({ 'name': u'功夫熊貓' })UniPrinter().pprint({'name': '\xe5\x8a\x9f\xe5\xa4\xab\xe7\x86\x8a\xe7\x8c\xab'})UniPrinter().pprint({'name':'\xe5\x8a\x9f\xe5\xa4\xab\xe7\x86\x8a\xe7\x8c\xab', 'age':22, 'address':'yydg.com.cn', 'male':True})
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.