python - 汉字作为字典KEY
问题描述
我正在尝试创建一个像这样的字典查找变量:
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: '山东省'
这有可能实现吗?
解决方案
如果您阅读错误,我不确定您是否已定义 API 返回的所有可能键。字典里的汉字没什么特别的,就是KeyError: '山东省'
你的字典里真的没有
如果您不能保证提前拥有所有已知的键,则应该回退到获取默认值
lookup.get(api_response['Response']['View'][0]['Result'][0]['Location']['Address']['State']], "Unknown")
推荐阅读
- php - 如何使用右连接和 MYSQL 案例获取两列的数据
- google-maps - 查找街道的起点和终点节点
- javascript - 列表中未定义的值
- javascript - JQ 事件在按 datatable.js 的提取行排序上没有激活
- css - 在不改变大小的情况下创建一侧边框在引导网格中
- mongodb - Mongo - 保存文档时出错:1 在写入数据库时不是主要的
- android - 本地通知实现
- javascript - 找不到 TypeScript 自定义定义文件
- asp.net - Asp.net mvc 5 身份 smtp 连接
- c++ - 如何在 if 语句中放入二维字符串数组?