how to print a dict which has japanese word using python
this is my code :
import xlrd,sys
data = xlrd.open_workbook('a.xls')
boss = data.sheets()[3]
print boss.row_values(3)[1]
it can show the right word :
キャプションサンプル。てすてす。改行もしたいよ
but because the a.xls has many data , so i append this data to a dict in 开发者_JAVA百科python ,
like this :
stage_dict[stage_number]['boss'][boss_number]['name'] = boss_row_list[4]
and show it :
print stage_dict
but it show this :
'\uff77\uff6c\uff8c\uff9f\uff7c\uff6e\uff9d\uff7b\uff9d\uff8c\uff9f\uff99\u3002\u3066\u3059\u3066\u3059\u3002\u6539\u884c\u3082\u3057\u305f\u3044\u3088\u3002'
so what can i do ,
how to print a dict using the right Coding,
thanks
updated:
this is a simple demo :
#coding:utf-8
a={0:"キャプションサンプル。てすてす。改行もしたいよ"}
b="キャプションサンプル。てすてす。改行もしたいよ"
print a,b
You cannot. print(somedict)
will always print the repr()
of the dict which is valid python code using escape sequences.
However, since printing a dict should be a debug-only thing anyway this is not really a problem. Displaying a value from the dict should work.
You can derive your own class from dict
and override __str__
method:
# -*- coding: utf-8 -*-
class MyDict(dict):
def __str__(self):
return "{"+", ".join(["%s: %s" % (key, self[key]) for key in self])+"}"
a = {0:"Velmi žluťoučký kůň"}
b = MyDict({0:"Velmi žluťoučký kůň"})
c = "Velmi žluťoučký kůň"
print(a)
print(b)
print(c)
Prints:
{0: 'Velmi \xc5\xbelu\xc5\xa5ou\xc4\x8dk\xc3\xbd k\xc5\xaf\xc5\x88'}
{0: Velmi žluťoučký kůň}
Velmi žluťoučký kůň
The derived class will behave exactly the same as dict
, but it will print using the method you specify.
Printing an object in Python will print how the object is represented in English text. Hence the result you are experiencing.
精彩评论