在python中按值之一查找键

2024-10-01 04:48:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要根据其中一个值找到键。但是,它得到“[]”根据我的搜索代码。pythonjson文件和代码如下

<type 'dict'>

{'university of washington': ['university of washington', 'u dub'], 'brown university': ['brown university', 'brown'], 'university of bath': ['university of bath'], 'deakin university': ['deakin university', 'deakin']}

import json
from ast import literal_eval
from collections import MutableMapping

def get_university_fullnames_dict(one_univ):
        with open('/data.json', 'r') as JSON:
            dic = json.load(JSON)
            my_dict = literal_eval(dic)
            #print type(my_dict)
            #print my_dict
        keys_have_value = [k for k,v in my_dict.items() if v == one_univ]
        return keys_have_value

# result is none, not "deakin university"
get_university_fullnames_dict('deakin')

预期结果应该是“迪肯大学”


Tags: of代码fromimportjsonmytypeeval
1条回答
网友
1楼 · 发布于 2024-10-01 04:48:42

你需要的是会员资格检查,而不是平等:

[k for k, v in d.items() if 'deakin' in v]

您的功能变为:

def get_university_fullnames_dict(one_univ):
    # .... other codes come here
    return [k for k, v in my_dict.items() if one_univ in v]

相关问题 更多 >