Python разбирает список словарей TypeError: строковые индексы должны быть целыми числами - PullRequest
0 голосов
/ 01 декабря 2019

У меня есть поле ввода формы HTML, которое возвращает список словарей, которые я хочу получить значения при использовании PYthon в Django View.

Форма возвращает:

request.POST['tags'] returns =>  [{"value":"summer"},{"value":"winter"}]

Когда я пытаюсьчерез него, используя [tag['value'] for tag in request.POST['tags']] для получения значений, я получаю TypeError: string indices must be integers.

Однако, если я вручную копирую результаты поля ввода в командную строку и перебираю строку за строкой, он работает как положено:

>>> test = [{"value":"summer"},{"value":"winter"}]
>>> test
>>> [{'value':'summer'},{'value':'winter'}]
>>> [tag['value'] for tag in test]
>>> ['summer', 'winter']

Что происходит?

Обновлено, чтобы добавить печать 3 различных запросов. Результаты POST:

request.POST => <QueryDict: {'tags': ['[{"value":"summer"},{"value":"winter"}]']}>

request.POST.values => <bound method MultiValueDict.values of <QueryDict: {
'tags': ['[{"value":"summer"},{"value":"winter"}]']}>>

request.POST[tags] => [{"value":"summer"},{"value":"winter"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...