-1
我有以下XML文件:如何遞歸迭代有序字典?
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author a_id="a101">
<first>Gambardella </first>
<last> Matthew</last>
<email> [email protected]</email>
</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk112">
<author a_id='a007'>
<first>Galos</first>
<last> Mike</last>
<email>[email protected]</email>
</author>
<title>Visual Studio 7: A Comprehensive Guide</title>
<genre>Computer</genre>
<price>49.95</price>
<publish_date>2001-04-16</publish_date>
<description>Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.</description>
</book>
</catalog>
我已經使用xmltodict
模塊,它返回一個有序詞典文件轉換成一個字典。此字典包含詞典中的字典作爲值。
from xmltodict import parse
data=open(file_name).read().replace('\n', '')
xml_dict = parse(data)
現在,我想在遞歸的方式直至打印xml_dict
一定深度的「鍵::值」格式。
任何人都可以告訴我如何以遞歸的方式迭代這個字典。
我已經試過代碼:
def print_dict(_dict):
for k, v in _dict.items():
if hasattr(v, 'items'):
print_dict(v)
elif isinstance(v, list):
for i in v:
print_dict(dict(i))
else:
print "(%s::%s)"%(k,v)
但與此代碼書標籤去錯過。
那麼,什麼將成爲該解決方案.......
'elif的isinstance(V,列表):'然後下面的'print_dict(字典(I)) '。這不應該只是'印刷v(i)'? – Evert 2015-04-04 17:56:04
任何你不能使用XML解析器的原因? – salparadise 2015-04-04 19:11:19
請顯示你想輸出的樣子。 – martineau 2015-04-06 01:26:07