我正在开发一个项目,尝试获取 Excel 文件(通过 xlrd
读入)并在其中对地址进行地理编码。为此,我使用目录列表,每个目录条目都是一个单独的站点。
类似于 addressList[0]
的内容将导致以下结果:
{text:u'First name ': u'John',
text:u'Site City': u'Indio',
text:u'Site State': u'CA',
text:u'Last name': u'Doe',
text:u'Site Phone': u'760-555-1234',
text:u'Site Zip': u'92201',
text:u'Site Address1': u'1313 Mockingbird Lane',
text:u'Site Name': u'Tyrell Industries',
text:u'Hours': u'Mon-Fri 12:00-1:00',
text:u'Affliation': u'Boys & Girls Clubs of America'}
(我刚刚意识到电子表格中的“隶属关系”拼写错误。呃。)
现在,我环顾四周才知道keys in Python can have spaces in them ,并且这应该不是问题。但输入 addressList[0]['Site Phone']
会导致 KeyError。事实上,尝试获取“Hours”键的值会导致类似的 KeyError。
基于 question on Unicode keys ,我尝试了以下方法:
STRING_DATA = dict([(str(k), v) for k, v in addressList[0].items()])
这导致了一本包含以下条目的字典:
"text:u'Site Name'": u'Tyrell Industries',
这相当不错,只是我现在必须通过 STRING_DATA["text:u'Site Name'"]
访问该值,这看起来很痛苦。
有没有更快/更简单的方法来使用按键?
最佳答案
text:u'First name ': u'John',
不是有效的 dict
条目。
在诸如 text:u'First Name'
这样的键之前有 text:
前缀的原因是,因为您使用的是 xlrd cell
s 作为字典的键。
您应该使用cell.value
从单元格中显式提取值
类似于:
new_keys = [k.k 在地址列表[0]中的值]
关于python - 在 Python 2.7 中访问带有空格的 unicode 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396147/