2

我在 Python 中调用 Web API,以 XML 形式获取数据,使用 xmltodict 将响应转换为字典,但是对于几个元素,有时我会得到一个字典(单个元素),有时我会得到一个列表(多个元素)作为响应.

我首先开始使用“if isinstance(..., dict):”——这可以解决我的问题,但不是那么优雅,在我的情况下需要相当多的代码行。然后我发现了“force_list”,我认为这正是我所需要的,但我需要将它应用到几个元素上,但我找不到正确的语法——我什至不确定这是否可能。

我试图使工作的代码:

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

仅使用 force_list={'Child'},代码按预期工作。使用上面的代码,我没有收到任何错误消息,但是当使用“type”函数检查结果时,我仍然有字典,我希望在其中获取列表。我尝试了其他语法并收到错误消息。

4

1 回答 1

2

我想我找到了正确的语法(它似乎按我的预期工作):

response = xmltodict.parse(xml, force_list=('孩子','兄弟'))

只是张贴以防将来有人会寻找相同的答案。

于 2019-06-17T17:27:38.033 回答