python - 字典中的值的字典 KeyError

标签 python dictionary keyerror

我在一个字典中有一个字典:

{
'123456789': {u'PhoneOwner': u'Bob', 'Frequency': 0},
'98765431': {u'PhoneOwner': u'Sarah', 'Frequency': 0},
}

这个想法是扫描一个由号码调用的电话列表,并与字典进行比较,每次找到匹配项时都会增加频率。

当我运行脚本时:

try:
phoneNumberDictionary[int(line)]['Frequency'] += 1
except KeyError:
phoneNumberDictionary[int(line)]['Frequency'] = 1

我得到错误:

KeyError: '18667209918'

(其中18667209918为当前正在搜索的号码)

然而,当我打印字典并搜索那个数字时,我可以立即找到它。 有什么想法吗?

最佳答案

您正在尝试搜索一个整数键:

phoneNumberDictionary[int(line)]

但是,您的字典将您的电话号码定义为字符串。

'123456789'

因此,整数 123456789 的 key 不存在。

关于python - 字典中的值的字典 KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34180843/

相关文章:

python - 使用 python 读取 Abaqus 结果的应力 'S'

python - 在 Python 中更改数据分辨率

c++ - 将代码从 map<char, T> 重构为 vector<T>

c# - 从字典返回通用类型(否则返回默认通用值)

python - key 错误: 'plotly_domain'

python - 如何从字典中随机选择一个项目?

python - Django 中 jinja2 模板的代码覆盖率

python - 如何在 QTextEdit 中创建完全透明

python - 在 "for line in data"循环中使用 .readline() 将文件的多行分配给多个变量

string - 使用 Scala 按顺序查找两个字符串的交集