Python 2.7中如何访问命名特殊的字典键u'alt'?
解决字典中
u'alt'键的访问问题 其实你是把Python里Unicode字符串的显示格式和实际的键名搞混啦!
先看你控制台输出的键列表:[u'name', u'value', u'alt', u'onchange', u'onfocus'],这里的u'alt'是Python对Unicode字符串的打印方式——u只是用来标记这是一个Unicode类型的字符串,实际键的内容就是alt(没有引号和u这些符号)。
你写的代码fullname = ship.attrs['u\'alt\''],相当于在尝试访问一个名为"u'alt'"的键,而这个键根本不存在,自然会抛出KeyError。
正确的访问方式有两种:
直接用普通字符串匹配:
fullname = ship.attrs['alt']在Python 2中,普通字符串会自动转为Unicode类型去匹配字典里的Unicode键;Python 3里所有字符串都是Unicode,更没问题。
明确使用Unicode字符串(Python 2环境下更严谨):
fullname = ship.attrs[u'alt']
举个模拟的小例子帮你理解:
# 模拟你的ship.attrs字典 attrs = {u'name': 'cargo_ship', u'alt': 'Ocean_Explorer'} # 错误访问(会报错) # print(attrs['u\'alt\'']) # 正确访问 print(attrs['alt']) # 输出: Ocean_Explorer print(attrs[u'alt']) # 输出: Ocean_Explorer
下次遇到这种带u的打印结果,记住u只是类型标记,实际键名就是中间的字符串内容~
内容的提问来源于stack exchange,提问作者user3015971
相关产品推荐
相关产品推荐

