Bibliothèque Python pour la création de graphes arborescents à partir d'objets Python imbriqués (dicts)
Personne ne sait de toutes les bibliothèques Python qui vous permettent de rapidement et simplement le nourrir un objet imbriqué à des niveaux arbitraires, comme par exemple un dict arbre le long de la lignes de ce que vous pouvez trouver dans ce gistet il peut cracher un mécanisme d'arbre de fichier graphique?
La simplicité est la clé, ici, depuis que j'ai à être en mesure de travailler avec des gens qui ne sont pas techniquement d'esprit.
Ce que je veux dire par "graphique de l'arbre" est quelque chose le long des lignes de la commande suivante, où j'ai pu donner un imbriquée dictionnaire des valeurs et il serait alors de créer la structure de l'arbre:
http://dhaka.rubyforge.org/parse_tree.jpg
source d'informationauteur jdotjdot
Vous devez vous connecter pour publier un commentaire.
ainsi la bibliothèque je recommande et utilise pour mon extrait de code dans cette réponse, c'est pas une bibliothèque python, mais c'est un python-amicale de la bibliothèque, par qui je veux dire que le code à l'aide de cette bibliothèque peut être inséré dans un module python pour le traitement des données et ce étrangères code connecter existantes, code python sur les deux extrémités, c'est à dire, à la fois en entrée et en sortie, et je soupçonne que, même si bien sûr, je ne sais pas, c'est tout ce qui est vraiment entend par la "bibliothèque python" critère. Donc, si vous écrivez une application web, ce code côté client. En d'autres termes, cette bibliothèque n'est pas python, mais il fonctionne avec python.
son entrée est (presque) cru python dictsplus précisément, json.charge(a_python_dict) retourne un tableau json ou d'un objet, d'un format qui cette bibliothèque javascript peut bien sûr reconnaître; et
le format de sortie est soit HTML ou SVG, pas les objets dans certains
spécifique à la langue format
Vous pouvez utiliser d3.js. Il a un classe spécifiquement pour le rendu des arbres:
Il y a aussi quelques exemples d'arbres (code du travail) dans le exemple de dossier dans le d3 source, qui vous permet de cloner/télécharger le formulaire le lien que j'ai fourni ci-dessus.
Parce que d3 est une bibliothèque javascript, son format de données natif est JSON.
La structure de base est imbriqué dans le dictionnaire, chaque dictionnaire représente un seul nœud avec les deux valeurs, le nom du noeud et de ses enfants (stockées dans un tableau), clé pour noms et enfantsrespectivement:
et bien sûr, il est simple de convertir entre python dictionnaires et JSON:
voici un python dictionnaire représentation d'un gros arbre (à une dizaine de nœuds) que j'ai converti en json comme ci-dessus, puis rendu dans d3 comme l'arbre indiqué dans l'image ci-dessous:
note: d3 rend dans la navigateur; l'image ci-dessus est juste une capture d'écran de ma fenêtre de navigateur.
Je ne suis pas sûr que c'est tout à fait ce que vous avez à l'esprit, mais c'est la première chose qui vient à l'esprit.
blockdiag est principalement destiné à être utilisé en tant que fichier autonome processeur semblable à Graphviz (pour lequel il existe un Python interface). Il accepte un fichier texte en entrée avec un drop-dead syntaxe simple, et produit des images en sortie.
Vous devriez être en mesure d'écrire une simple cale pour la sortie de votre récursive dict structure formaté pour l'entrée à l'autonome blockdiag script, ou importer le nécessaire entrailles de la blockdiag paquet et le lecteur directement le résultat.
Si cela semble prometteur, je vais voir si je peux concocter un exemple de code.
MODIFIER Exemple de code:
Ce sera la sortie d'un fichier blockdiag peut lire.
En fonction de ce que vous avez besoin, mais si vous avez uniquement besoin pour en afficher le contenu facilement, vous pouvez utiliser l'outil en ligne pour que - "Python dict formateur et le spectateur" peut rendre un dict comme un arbre.