在for循环中添加到字典:不递增

时间:2015-06-24 07:05:59

标签: python dictionary

基本上,我想将以下XML输入存储到字典中。

输入摘录(变量 xml_tree

<listingContentIndexEntry>
    <active>true</active>
    <lastUpdatedDate>2015-05-05</lastUpdatedDate>
    <listingHomeAwayId>/listings/0000/2671f21e-16a7-45c9-a6b7-d94ca801db24</listingHomeAwayId>
    <listingUrl>http://www.a.url</listingUrl>
</listingContentIndexEntry>
<listingContentIndexEntry>
    <active>true</active>
    <lastUpdatedDate>2015-05-05</lastUpdatedDate>
    <listingHomeAwayId>/listings/0000/849302c1-8734-4540-8169-57d71a309dc8</listingHomeAwayId>
    <listingUrl>http://www.a.url</listingUrl>
</listingContentIndexEntry>
<listingContentIndexEntry>
    <active>true</active>
    <lastUpdatedDate>2015-05-05</lastUpdatedDate>
    <listingHomeAwayId>/listings/0000/7fbfa33c-3371-4850-9c21-6a7685dd0ae1</listingHomeAwayId>
    <listingUrl>http://www.a.url</listingUrl>
</listingContentIndexEntry>
<listingContentIndexEntry>
    <active>false</active>
    <lastUpdatedDate>2015-05-05</lastUpdatedDate>
    <listingHomeAwayId>/listings/0000/336b4e46-e710-49a0-a192-ab66e320fe89</listingHomeAwayId>
    <listingUrl>http://www.a.url</listingUrl>
</listingContentIndexEntry>
<listingContentIndexEntry>
.........

到目前为止,我的代码是

xml_tree = ET.fromstring(xml)

#parse xml
for listingContentIndexEntry in xml_tree.iter('listingContentIndexEntry'):
    active = listingContentIndexEntry.find('active').text
    lastUpdatedDate = listingContentIndexEntry.find('lastUpdatedDate').text
    listingId = listingContentIndexEntry.find('listingId').text
    listingUrl = listingContentIndexEntry.find('listingUrl').text


    data = {'listingId':listingId,'active': active,'lastupdateDate': lastUpdatedDate}
    id_dict.update(data)

正在从XML正确读取数据(我已经打印到屏幕),但是当我打印字典时,它只显示一个条目,应该有几百个。

{'lastupdateDate': '2015-06-23', 'listingId': '/listings/0000/c5666884-c74f-4b89-831a-e285720e611c', 'active': 'false'}

如何在字典中添加多个条目?

1 个答案:

答案 0 :(得分:1)

dict.update方法只是将字典的新元素添加到上一个字典中,并且如果在旧字典中遇到相同的key,也会更新已设置的值。

dict1 = {'Name': 'Zara', 'Age': 7}
dict2 = {'Sex': 'female', 'Age':19 }

dict1.update(dict2)
print "Value : %s" %  dict1

输出是:

Value : {'Age': 19, 'Name': 'Zara', 'Sex': 'female'}

你在这里看到老年人被新时代所取代。 同样,在您的代码中未设置新的keys,始终会更新以前的设置键。 如果您希望获得所有结果,请将id_dict更改为id_list一个列表并使用id_list.append(data) insted。