Python 汉字作为字典的钥匙

Python 汉字作为字典的钥匙,python,Python,我正在尝试创建一个字典查找变量,如下所示: lookup = { u'安徽省':'Anhui', u'福建省':'Fujian', u'甘肃省':'Gansu', u'广东省':'Guangdong', u'贵州省':'Guizhou', u'浙江省':'Zhejiang' } 我正在调用一个API,它会以中文返回结果。我只想有一个查找表,将其转换为英文名称 所以我的代码是: api_response = api.geocode(address,

我正在尝试创建一个字典查找变量,如下所示:

lookup = {
    u'安徽省':'Anhui',
    u'福建省':'Fujian',
    u'甘肃省':'Gansu',
    u'广东省':'Guangdong',
    u'贵州省':'Guizhou',
    u'浙江省':'Zhejiang'
}
我正在调用一个API,它会以中文返回结果。我只想有一个查找表,将其转换为英文名称

所以我的代码是:

api_response = api.geocode(address, isChina)
if len(api_response['Response']['View']) > 0:
        state = lookup[api_response['Response']['View'][0]['Result'][0]['Location']['Address']['State']]
但我得到的错误是:

2019-07-29 15:35:13.193 | ERROR    | __main__:<module>:148 - Traceback (most recent call last):   File "format.py", line 93, in <module>
    new_dict = doStepByStepCleanse(row, isChina, line_count)   File "format.py", line 43, in doStepByStepCleanse
    state =  lookup[api_response['Response']['View'][0]['Result'][0]['Location']['Address']['State']] KeyError: '山东省'
2019-07-29 15:35:13.193 | ERROR | | | u|u main|u::148-回溯(最近一次调用):文件“format.py”,第93行,在
new_dict=doStepByStepCleanse(row,isChina,line_count)文件“format.py”,doStepByStepCleanse中的第43行
state=lookup[api_response['response']['View'][0]['Result'][0]['Location']['Address']['state']]KeyError:'山东省'

这可能实现吗?

如果您阅读了错误,我不确定您是否定义了API返回的所有可能的键。字典里的汉字没有什么特别之处,只是
keyrerror:'山东省'意味着它实际上不在字典中

如果不能保证提前拥有所有已知的密钥,则应该回退到获取默认值

lookup.get(api_response['Response']['View'][0]['Result'][0]['Location']['Address']['State']], "Unknown") 

我看不到
山东省
在您的字典中使用哪种python版本?一个
dict
键可以是任何可哈希值。
str
(如果使用Python 2.7,则为
unicode
字符串)是可散列的,因此汉字没有什么特殊之处。然而@cricket_007所说的可能是您的问题。我使用的是Python 3.7@板球007答案是正确的!钥匙不在那儿。老实说,我看着这些汉字,它们在我看来都是一样的。谢谢板球!如果您使用的是python3.7,则不需要使用
u'text'
,因为默认情况下,所有这些都是'unicode'。