[Python] XMLとJSON対応

台風は東にそれました。これでただの涼しい平日です。

データ提供用 API の開発中で、代表的な XML と JSON は対応しようと思っています。

Python の場合は JSON は dict から json ライブラリを使って json.dumps の1文で良さそうです。

XML も dict から xml.etree 変換の際に、再帰ループを組めばできそうですが、

やってっみたところ etree はメソッドが繋げられないので、内包式では表現できないようです。以下のように、型によって対応を変えなければならないものもあります。

下記のコードはPython2.7なのでPython3以上はunicode不要です。
    elm = etree.SubElement(rec, name)
    elm.text = (
        str(value)
            if type(value).__name__ == 'float' else
        str(value).lower()
            if type(value).__name__ == 'bool' else
        unicode(value)
            if type(value).__name__ == 'str' else
        ''
            if value == None else
        value)

全然関係無い話ですが、ガス給湯器について、東京ガスに依頼するのとサードパーティに依頼するのとで、以下のような違いがあります。

東京ガスに依頼する場合

  • 対応がしっかりしている
  • 保証サポートのオプションをつけることができる

サードパーティ業者の場合

  • 工賃や機器が安い
  • 工事日が比較的自由

しかし、東京ガス、もう少し安くならないでしょうか。