Dict en XML, FLask

0 Flares 0 Flares ×

Voila un petit exemple d’application Flask vous permettant de transformer un dict python en une réponse XML.

Ma fonction dict_to_xml est assez rudimentaire et je pense qu’elle lève une erreur assez facilement :)

Les données de mon dict étant assez simples, je n’ai pas eu besoin de faire davantage, mais vous pouvez faire bien mieux.

(les éléments d’un tableau sont placés dans une balise item)

Si vous n’avez pas Flask :

pip install Flask

Lancez votre application :

python app.py

app.py:

from flask import Flask, Response
from xml.etree.ElementTree import Element, tostring

app = Flask(__name__)

@app.route('/')
def get_xml():

    d = {
        "name": "bibichette",
        "sexe": "moyen",
        "age": 35,
        "urls": [
            "http://bibichette.com",
            "https://easid.cc/Julien"
        ],
        "networks": [
            {"id": "twitter", "username": ["bibichette", "eas_ID"]},
            {"id": "easid", "username": "Julien"}
        ]
    }
    root = dict_to_xml("person", d)
    content = tostring(root, encoding='utf8', method='xml')
    return Response(content, mimetype='text/xml')

def dict_to_xml(tag, o):

    elem = Element(tag)
    if isinstance(o, dict):
        for key, val in o.iteritems():
            elem.append(dict_to_xml(key, val))
    elif type(o) in (list, set, tuple):
        for item in o:
            elem.append(dict_to_xml("item", item))
    else:
        elem.text = unicode(o)

    return elem

if __name__ == '__main__':
    app.run(debug=True)
0 Flares Twitter 0 Facebook 0 Google+ 0 Buffer 0 0 Flares ×

« »