首页 > 编程语言 > 详细

python2 以中文为字典的键时出现的错误

时间:2020-03-05 21:39:05      阅读:139      评论:0      收藏:0      [点我收藏+]

场景是这样的:

在 mysql 库中有一张日报表,表中是本省各地市的一些指标,地市名称使用中文名字表示。 如

城市 人口
广州市 300
深圳市 400

然后在一个 excel 文件中也有类似的二维表

城市 人口
深圳市
广州市

需要从 mysql 中取出各项指标数据写入到 excel 中,由于 mysql 表中的顺序与 excel 中的顺序是不相同的,于是需要将 mysql 中的数据取出,然后再根据 excel 中第一列的内容与 mysql 中的数据做匹配,得到各项指标,再写入 excel。这里比较方便的做法是先将从 mysql 中取出的数据保存到一个字典中,这个字典以城市名称为键,各指标项的名称和值再组成一个小的字典,做为值,如:

result_dict = {‘广州市‘: {‘rk‘: 300, ‘mj‘: 500}, ‘深圳市‘: {‘rk‘: 400, ‘mj‘: 300}}

但是众所周知,在 python2 里面中文处理是有问题的。在我的程序中,得到的字典,其中的键——也就是城市名称全部都变成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‘)

解决

python2 以中文为字典的键时出现的错误

原文:https://www.cnblogs.com/wuzhiblog/p/12422704.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!