5

XML との間のデータの迅速なシリアル化を可能にする simplejson に類似したライブラリはありますか。

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

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

何か案は?

4

5 に答える 5

3

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'},)
>>> 
于 2010-06-08T11:08:01.813 に答える
3

Django: xml_serializer.pyで彼らがどのようにそれを行ったかを見て、これをニーズに合わせて調整してください。

于 2010-06-08T13:48:50.517 に答える
2

xmlとpythonのデータ型の間に「型マッピング」がないため、jsonの場合ほど単純ではありません。対応するXSL内にマップされているように、HeckXMLデータは何でもかまいません。

気になるAPIについては、ElementTreeをお勧めします

Element Treeを使用したXMLの解析に関する優れたチュートリアルについては、MarkPilgrimのPython3への飛び込みを参照してください。

于 2010-06-08T12:25:46.670 に答える
2

私は一つも知りません。xmlrpcが重要でない限り... 独自のものを作成することを考えている場合: ElementTreeで何かを行うことは、他のほとんどの XML ライブラリと比較して楽しいことです。

でも、標準化されていない表現になってしまうので、両方をコントロールする必要がありますよね?それでは、jsonpickle、または既に存在するものを選択しないのはなぜですか?

xmlrpclib モジュールを使用する場合:

xmlrpclib.dumps(data)

Forest は xmlrpclib の制限について言及していますが、これは良い点です。私が自分で見たもの: 整数は 2^31-1 を超えることはできません。そうしないと、ライブラリが文句を言います。通常、「なし」の値は適切ではありませんが、回避できます。おそらく他にも制限があります。

それとは別に、xmlrpc-protocol はかなり冗長です。送信されるデータの量を心配する必要がある場合は、最適な方法ではありません。しかし、非常に効率的な XML バージョンはありません。

于 2010-06-08T11:06:25.053 に答える
1

lxmlはどうですか?

于 2010-06-08T11:06:02.293 に答える