紧急求助!python中的字典使用汉字作为key,访问出错!

坚持_执着 发布于 2012/07/22 15:19
阅读 6K+
收藏 0

如题!在使用python中的字典的时候,key和value中的值都有汉字,但是访问的时候却出错,出错信息大致是:KeyError: '\xd7\xde\xc6\xbd\xcf\xd8\xb3\xc7\xc4\xcf\xd0\xc2\xc7\xf8\xb9\xe3\xb3\xa1\xb6\xab\xc2\xb715\xba\xc5\xd7\xde\xc6\xbd\xb9\xe3\xb5\xe7\xb4\xf3\xbe\xe7\xd4\xba'

请问如何解决?!

加载中
0
少帮主
少帮主

试试在头部加上编码声明注释

# -*- coding: gbk -*-



key = '\xd7\xde\xc6\xbd\xcf\xd8\xb3\xc7\xc4\xcf\xd0\xc2\xc7\xf8\xb9\xe3\xb3\xa1\xb6\xab\xc2\xb715\xba\xc5'



value = '值'

 

print key

m = {}

m[key] = value



print m[key]





#输出


邹平县城南新区广场东路15号
值

0
坚持_执着
坚持_执着

引用来自“少帮主”的答案

试试在头部加上编码声明注释

# -*- coding: gbk -*-



key = '\xd7\xde\xc6\xbd\xcf\xd8\xb3\xc7\xc4\xcf\xd0\xc2\xc7\xf8\xb9\xe3\xb3\xa1\xb6\xab\xc2\xb715\xba\xc5'



value = '值'

 

print key

m = {}

m[key] = value



print m[key]





#输出


邹平县城南新区广场东路15号
值

SyntaxError: 'unknown encoding: gbk'

提示这个错误,这是公司机器上的python,版本是2.3.4,应该是因为版本太低不支持gbk?

0
坚持_执着
坚持_执着

引用来自“少帮主”的答案

试试在头部加上编码声明注释

# -*- coding: gbk -*-



key = '\xd7\xde\xc6\xbd\xcf\xd8\xb3\xc7\xc4\xcf\xd0\xc2\xc7\xf8\xb9\xe3\xb3\xa1\xb6\xab\xc2\xb715\xba\xc5'



value = '值'

 

print key

m = {}

m[key] = value



print m[key]





#输出


邹平县城南新区广场东路15号
值

如果直接这样访问m['邹平县城南新区广场东路15号'],是可以的,但是用字符串变量却不行,百思不得其解!

0
回去干活
回去干活
key = u'\xd7\xde\xc6\xbd\xcf\xd8\xb3\xc7\xc4\xcf\xd0\xc2\xc7\xf8\xb9\xe3\xb3\xa1\xb6\xab\xc2\xb715\xba\xc5'

0
坚持_执着
坚持_执着

引用来自“zlsky”的答案

key = u'\xd7\xde\xc6\xbd\xcf\xd8\xb3\xc7\xc4\xcf\xd0\xc2\xc7\xf8\xb9\xe3\xb3\xa1\xb6\xab\xc2\xb715\xba\xc5'

貌似不可行啊。。
0
少帮主
少帮主

key = '\xd7\xde\xc6\xbd\xcf\xd8\xb3\xc7\xc4\xcf\xd0\xc2\xc7\xf8\xb9\xe3\xb3\xa1\xb6\xab\xc2\xb715\xba\xc5'

value = '\xd7\xde'

 

key = key.decode('gbk')

value = value.decode('gbk')

 

print key

m = {}

m[key] = value

 

print m[key]


2.3太老了,试下强制解码看看,如果还不行,游客能就是识别不了gbk

0
坚持_执着
坚持_执着

引用来自“少帮主”的答案

key = '\xd7\xde\xc6\xbd\xcf\xd8\xb3\xc7\xc4\xcf\xd0\xc2\xc7\xf8\xb9\xe3\xb3\xa1\xb6\xab\xc2\xb715\xba\xc5'

value = '\xd7\xde'

 

key = key.decode('gbk')

value = value.decode('gbk')

 

print key

m = {}

m[key] = value

 

print m[key]


2.3太老了,试下强制解码看看,如果还不行,游客能就是识别不了gbk

依然不行,看来是版本太老了,但是又不能更新版本。。。

谢谢!看能不能找到其他解决办法。

返回顶部
顶部