json Python xmltodict带有属性的强制数组

byqmnocz  于 12个月前  发布在  Python
关注(0)|答案(2)|浏览(76)

我已经成功地使用python包xmltodict将xml字符串解析成python字典。
但是,我有以下问题:

<child>
  <episode>["a","b"]</episode>
</child>

字符串
解析为:

{ 
  child: {
    episode: ["a","b"]
    }
 }


鉴于:

<child>
  <episode>["a","b"]</episode>
  <episode>["c","d"]</episode>
</child`


解析为:

{ child: 
   {
    episode: [
     ["a","b"],
     ["c","d"]
     ]
    }
 }


这意味着我写的代码会给予我不同的结果,这取决于我在看哪个孩子的观察结果。
我想要的是一种方法来指定总是将剧集解析为一个数组-类似于这个.Net package。在Python中做这件事的最好方法是什么?

yyyllmsg

yyyllmsg1#

"episodes"键上尝试flatten函数?

def flatten(it):
    res = []
    for item in it:
        if not isinstance(item, list):
            res.append(item)
            continue
        res.extend(item)
    return res

字符串

vwkv1x7d

vwkv1x7d2#

xmltodict为此用例提供了force_list。
它是这样工作的:

>>> xmltodict.parse(xml, force_list=('episode'))
{'child': {'episode': ['["a","b"]']}}

字符串

相关问题