解析数组中的字典键值

时间:2018-06-18 15:44:43

标签: python-3.x list dictionary openxml

我有一个数组,其中包含有关在开放XML中抓取的表单的详细信息。关键格式是时髦的,这就是为什么我很难轻易获得价值。键值对的简单循环不会返回我想要的数据。这是我目前所在的地方,我正在使用python3。

person = [{'{http://schemas.openxmlformats.org/wordprocessingml/2006/main}val': 'Title'}, {'http://schemas.openxmlformats.org/wordprocessingml/2006/main}val': 'FirstName'}, {'{http://schemas.openxmlformats.org/wordprocessingml/2006/main}val': 'LastName'},{'{http://schemas.openxmlformats.org/wordprocessingml/2006/main}val': 'Age'}]

for k in person:
   print(k.values())

返回

dict_values(['Title'])
dict_values(['FirstName'])
dict_values(['LastName'])
dict_values(['Age'])

我如何解析这些键:值对,这样我就不会在值前面得到dict_values。

所需的输出如下所示:

Title
FirstName
LastName
Age

如果我这样做:

for k in person:
   for key, value in k:
       print(v)

我收到了太多值的错误,无法解压缩,只有2,所以我不明白错误是什么。在单个对象上运行时长度为1

1 个答案:

答案 0 :(得分:0)

这里的格式效率相当低。您有一个包含词典的列表,每个词典中只包含一个键值对。如果您的代码会在一个对象中生成一个包含所有键值对的单个字典,那么情况会好一些。

您现在正在打印.values() dictionary view object。每个只包含一个值。您可以遍历对象并打印每个视图的每个值:

for k in person:
   for value in values():
       print(value)

或者您可以将所有词典合并为一个,然后直接循环遍历该单个词典的值:

combined = dict(item for d in person for item in d.items())
for value in combined.values():
    print(value)