2
我有存儲在需要寫入到一個XML文件格式的字典格式的數據..爲什麼dict2xml在輸入字典中不保持相同的順序?
我想使用dict2xml模塊..
我看到達在詞典項目的順序是不在xml文件中維護。
我使用的字典輸入是OrderedDict()。
可能是什麼原因。除了可以使用dict2xml以外的其他更好的模塊?
例如..
$ ipython
Python 3.5.1 (default, Oct 28 2016, 14:29:41)
Type "copyright", "credits" or "license" for more information.
IPython 5.2.2 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: from collections import OrderedDict
In [2]: myDict = OrderedDict()
In [3]: myDict['simpleVal'] = 1
In [4]: dictVal = OrderedDict()
In [5]: dictVal['simpleVal1'] = 2
In [6]: dictVal['listVal'] = ['a','b','c']
In [7]: myDict['dictVal'] = dictVal
In [8]: myDict['listVal1'] = ['d','e','f','g']
In [9]: myDict
Out[9]:
OrderedDict([('simpleVal', 1),
('dictVal',
OrderedDict([('simpleVal1', 2), ('listVal', ['a', 'b', 'c'])])),
('listVal1', ['d', 'e', 'f', 'g'])])
In [10]: from dict2xml import dict2xml
In [11]: dict2xml(myDict)
Out[11]: '<dictVal>\n <listVal>a</listVal>\n <listVal>b</listVal>\n <listVal>c</listVal>\n <simpleVal1>2</simpleVal1>\n</dictVal>\n<listVal1>d</listVal1>\n<listVal1>e</listVal1>\n<listVal1>f</listVal1>\n<listVal1>g</listVal1>\n<simpleVal>1</simpleVal>'
實際輸出,你可以看到的是:
<dictVal>
<listVal>a</listVal>
<listVal>b</listVal>
<listVal>c</listVal>
<simpleVal1>2</simpleVal1>
</dictVal>
<listVal1>d</listVal1>
<listVal1>e</listVal1>
<listVal1>f</listVal1>
<listVal1>g</listVal1>
<simpleVal>1</simpleVal>
但按我的順序我已經給定輸出應該是
<simpleVal>1</simpleVal>
<dictVal>
<simpleVal1>2</simpleVal1>
<listVal>a</listVal>
<listVal>b</listVal>
<listVal>c</listVal>
</dictVal>
<listVal1>d</listVal1>
<listVal1>e</listVal1>
<listVal1>f</listVal1>
<listVal1>g</listVal1>
你可以更新你的信息:你的代碼,輸入,預期的輸出,實際輸出。謝謝。 –
抱歉已更新查詢.. –