python – 将dict的键和值从str转换为Unicode的最快方法?

我正在使用集合导入计数器中的计数器,我想使用matplotlib.pylot打印它的值.

当我尝试使用时:

plt.bar(range(len(cnt)), cnt.values(), align='center')
plt.xticks(range(len(cnt)), cnt.keys())
plt.show()

我收到以下错误:

ValueError: matplotlib display text must have all code points < 128 or use Unicode strings

这就是我试图将Counter字典键转换为Unicode的原因.

最佳答案 如果您使用的是Python 2.7,则可以使用dict理解:

unidict = {k.decode('utf8'): v.decode('utf8') for k, v in strdict.items()}

对于旧版本:

unidict = dict((k.decode('utf8'), v.decode('utf8')) for k, v in strdict.items())

(这假设你的字符串是UTF-8,当然.)

点赞