2017-02-03 8 views
-1

Как получить информацию из одного словаря для поиска связанного имени в другом словаре? Например, один словарь, который я создаю, содержит имя, адрес электронной почты и идентификатор всех пользователей в системе. Другой словарь содержит только идентификатор.Python, создающий два словаря, соответствующие ключи и значение печати

Я хочу взять идентификатор из стенограммы и посмотреть, какой пользователь написал стенограмму. Идентификатор является числовой строкой

Вот что у меня есть, но все оно возвращает одно и то же имя пользователя, независимо от числа транскрипции, которое я вводил.

transcript = transcript.find(id=transcript_id) 

for admin in category.all(): 
    user = {'name': admin.name, 'id': admin.id, 'email': admin.email } 

for part in transcript.transcript_parts: 
    transcript_author = { 'id': part.author.id } 

for key in transcript_author: 
     if key in user: 
      print(user['name']) 

ответ

0

Проверка на наличие в Словаре (if key in user) выглядит только в клавишах Словаре, который не то, что вы хотите. Вы хотите сравнить значение, в частности, ключа 'id'.

Рассмотрим это:

>>> user = {'name': 'chrism1148', 'id': '12345', 'email': None} 
>>> '12345' in user 
False # fails as '12345' is not one of the keys 
>>> 'id' in user 
True # succeeds as 'id' is a key 
>>> '12345' == user['id'] 
True # this works, but will throw an exception if 'id' is not in the dict for some reason 
>>> '12345' == user.get('id', None) 
True # it's a good idea to use this instead (None is used as a default value for when 'id' is not present in the dict) 
Смежные вопросы