Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python3 json中按值查找键_Python_Json_Python 3.x_Parsing_File Io - Fatal编程技术网

在python3 json中按值查找键

在python3 json中按值查找键,python,json,python-3.x,parsing,file-io,Python,Json,Python 3.x,Parsing,File Io,我有一个json对象:users.json { "1" : { "name" : "Jason" } , "2" : { "name" : "Alex" } } 我有一个python函数,它接受一个名称作为输入,并应返回“id”。例如,如果我通过'Jason',它应该返回'1',如果我通过'Alex',它应该返回'2'。我知道这是一个

我有一个json对象:users.json

{ 
  "1" :
       { "name" : "Jason" } , 
  "2" : 
       { "name" : "Alex" }
}
我有一个python函数,它接受一个名称作为输入,并应返回“id”。例如,如果我通过'Jason',它应该返回'1',如果我通过'Alex',它应该返回'2'。我知道这是一个简单的问题,但我真的被卡住了…(而且有点懒于研究python词汇表…)以下是我到目前为止的内容

def __init__(self):
    self.users_file = 'users.json'

def read_users_file(self):
    with open(self.users_file) as users_file:
        return json.load(users_file)

def get_user_id(self, name):  
    data = self.read_users_file()
    values = data.values()
    for val in data.values():
        if(name == val.get('name')):
            print('user found!')

谢谢

data = {
    "1":
    {"name": "Jason"},
    "2":
    {"name": "Alex"}
}


name = 'Jason'

for key in d:
    if (d[key]['name'] == name):
        print(key) ## output 1
或者以更具蟒蛇的方式:

for key, value in data.items():
    if name == value['name']:
        print(key)

我认为你的代码比你接受的答案要好。我看到的唯一问题是冗余的
values=data.values()