在python3 json中按值查找键
我有一个json对象:users.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'。我知道这是一个
{
"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()