簡體   English   中英

XML庫類似於simplejson / json? - Python

[英]XML library similar to simplejson/json? - Python

是否有類似於simplejson的庫,它可以實現與XML的快速序列化數據。

e.g. json.loads('{vol:'III', title:'Magical Unicorn'}')

e.g. json.dumps([1,2,3,4,5])

有任何想法嗎?

你不會為xml找到任何與json一致的東西,因為xml不知道數據類型。 這取決於您遵循約定或強制遵守xml架構文件。

話雖這么說,如果您願意接受XML-RPC數據結構映射和一些限制,請查看存在於Python標准庫中的xmlrpclib包:

http://docs.python.org/library/xmlrpclib.html#convenience-functions

>>> import xmlrpclib
>>> s = xmlrpclib.dumps( ({'vol':'III', 'title':'Magical Unicorn'},))
>>> print s
<params>
<param>
<value><struct>
<member>
<name>vol</name>
<value><string>III</string></value>
</member>
<member>
<name>title</name>
<value><string>Magical Unicorn</string></value>
</member>
</struct></value>
</param>
</params>

>>> xmlrpclib.loads(s)[0]
({'vol': 'III', 'title': 'Magical Unicorn'},)
>>> 

你可以看看他們是如何在Django中完成它的: xml_serializer.py並根據你的需要定制它。

我不知道一個。 除非xmlrpc計算...如果你正在考慮自己動手:與大多數其他XML庫相比,使用ElementTree做任何事情都是一種樂趣。

但是,既然你可能最終會得到一個非標准化的代表,你需要控制雙方,對嗎? 那么為什么不選擇jsonpickle或已經存在的東西呢?

如果您想使用xmlrpclib模塊:

xmlrpclib.dumps(data)

Forest提到了xmlrpclib中的限制,這是一個很好的觀點。 有些我自己看過:整數不能超過2 ^ 31-1或者圖書館會抱怨。 “無”值通常不合適,但你可以解決這個問題。 也可能存在其他限制。

除此之外,xmlrpc協議非常詳細。 如果您需要擔心發送了多少數據,那么這不是最好的數據。 但是沒有XML版本會非常有效。

使用xml並不像json那樣直接,因為xml和python的數據類型之間沒有“類型映射”。 Heck XML數據可以是任何東西,映射在相應的XSL中。

至於API,你最關心的是,我推薦Element Tree

有關使用Element Tree解析XML的好教程,我將向您介紹Mark Pilgrim的Dive into Python3

那么lxml呢?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM