我是python的新手。我正在学习从存储在文件中的哈希表中获取数据。以下是我的表格示例:
{
"Technology": {"20809": 98},
"Movie":{"1193435": 1},
"Entertainment":{"13398": 76},
"Computer": {"28765": 54},
"Food": {"708": 4},
"Gasoline": {"358": 18},
"Material": {"98": 6},
"Water": {"3": 6}
}
问题:
我如何获得子键的值?例如,子键"708"
("Food"
下)的值为4
。我怎样才能获得4号?我只知道,如果我使用variable.get(key)
,我将获得子键和子键的值,但是如何才有价值?以下代码是我想要做的。我想将输入传递给函数并返回值。
如果我想在大量哈希表中搜索子键的值,这种方法是否足够有效(足够快)?谢谢。
def searchAtHashTable(input):
hashVal = # I read the hash value from a file by using .read()
for key in hashVal.keys():
if key == input:
return sorted(hashVal.get(key))
答案 0 :(得分:4)
只需链接项目语法:
>>> outerdict['Food']['708']
4
如果您拥有的只是'708'
,则必须搜索:
def searchNestedKey(outerdict, key):
for nesteddict in outerdict.itervalues():
if key in nesteddict:
return nesteddict[key]
这会循环遍历所有嵌套字典(outerdict
的值),如果其中存在key
,它将返回该值。如果多个字典具有相同的键,则选择哪个键是未定义的,因为Python字典不承诺特定的排序。