Преобразование QueryDict в словарь пары ключ-значение

#python #django #list #dictionary #request

#python #django #Список #словарь #запрос

Вопрос:

У меня есть QueryDict который я получаю от request.POST в этом формате:

 <QueryDict: {'name': ['John'], 'urls': ['google.com/rnbing.com/rnaskjeeves.com/'], 'user_email': ['john.smith@gmail.com']}>
  

Почему все значения находятся в списках?

Я сделал dict(request.POST)

Я получил

 {'name': ['John'], 'urls': ['google.com/rnbing.com/rnaskjeeves.com/'], 'user_email': ['john.smith@gmail.com']}
  

Как я могу получить?:

 {'name': 'John', 'urls': 'google.com/rnbing.com/rnaskjeeves.com/'`, 'user_email': 'john.smith@gmail.com'}
  

Ответ №1:

Вы можете использовать понимание списка, чтобы получить первую запись из списков значений;

 dd = dict(request.POST)
ddnew = {k:dd[k][0] for k in dd}
  

Ответ №2:

Вы можете попробовать это

 my_dict = dict(request.POST)
my_dict = {k: v[0] for k, v in my_dict.items()}
print(my_dict)
  

Предположим, что для всех значений словаря есть списки, содержащие только один элемент.