python - 在 Python 2.7 中访问带有空格的 unicode 键

标签 python xlrd dictionary python-unicode

我正在开发一个项目,尝试获取 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/

相关文章:

python - Numpy 在矩阵中获取相邻索引或值的有效方法

python - 使用 PyInstaller 创建 Python 可执行文件后权限被拒绝

swift - 如何在 Swift 中将字符串转换为字典类型?

arrays - 如何在swift4中使用key访问数组

python - Python 如何对元组列表进行排序?

python - Pandas 滚动窗口百分位排名

Python - 循环遍历非空白 Excel 单元格

excel - 将 .xlsx 转换为 .csv - 找不到 Excel 工作表

python - 使用 Python 读取 .xlsx 文件的最快方法

Python 字典到 URL 参数