Могу ли я "force_list" более одного параметра в xmltodict? - PullRequest
0 голосов
/ 15 июня 2019

Я вызываю веб-API в Python, возвращаю данные обратно в XML, преобразовываю ответ в словарь, используя xmltodict, но для нескольких элементов иногда я получаю словарь (один элемент), а иногда я получаю список (несколько элементов) ) в ответ.

Сначала я начал использовать «if isinstance (..., dict):» - это могло бы решить мою проблему, но это не так элегантно и требует довольно много строк кода в моем случае. Затем я обнаружил «force_list», который, как мне кажется, именно то, что мне нужно, но мне нужно применить его к нескольким элементам, и я не могу найти правильный синтаксис - я даже не уверен, возможно ли это.

Код, который я пытаюсь заставить работать:

response = xmltodict.parse (xml, force_list = ({'Child'}, {'Brother'}))

Только с force_list = {'Child'}, код работает как положено. С помощью приведенного выше кода я не получаю никаких сообщений об ошибках, но при проверке результата с помощью функции «type» у меня все еще есть словари, в которых я ожидаю получить списки. Я попробовал другой синтаксис и получил сообщения об ошибках.

1 Ответ

0 голосов
/ 17 июня 2019

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

response = xmltodict.parse (xml, force_list = ('Child', 'Brother'))

Просто отправляю сообщения на случай, если кто-нибудь будет искать тот же ответ в будущем.

...