python 2中国語を辞書のキーとするときに発生するエラー

1053 ワード

シーンは次のとおりです.
mysqlライブラリには、本省各地の市の指標であり、地市名は中国語の名前で表されている日本のレポートがあります.のように
都市
人口
広州市
300
深セン市
400
次に、excelファイルにも似たような2 Dテーブルがあります.
都市
人口
深セン市
広州市
mysqlから各指標データを取り出してexcelに書き込む必要があります.mysqlテーブルの順序はexcelの順序とは異なるので、mysqlのデータを取り出し、excelの最初の列の内容に基づいてmysqlのデータと一致し、各指標を得てexcelに書き込む必要があります.ここで便利な方法は、mysqlから取り出したデータを1つの辞書に保存することです.この辞書は都市名をキーとし、各指標項目の名前と値は小さな辞書を構成し、値として次のようにします.
result_dict = {'   ': {'rk': 300, 'mj': 500}, '   ': {'rk': 400, 'mj': 300}}

しかしpython 2では中国語処理に問題があることはよく知られている.私のプログラムでは、得られた辞書、その中のキー、つまり都市名はすべて16進数表示の値になりました.例えば「広州市」は\xe5\xb9\xbf\xe5\xb7\x9e\xe5\xb8\x82になりました
また、まずexcelの最初の列の都市名を読み出し、それから得られた辞書から各指標値を取得する必要があります.excelを読むにはopenpyxlを使用しています.多くのテストを経て、読み込んだ都市名がu'\u5e7f\u5dde\u5e02'になったことがわかりました.
これで穴だ
最終的に私の方法はexcelから読んだ都市名をencodeにすることです.
# m = u'\u5e7f\u5dde\u5e02'
m.encode('utf-8')

解決する