J'ai une sortie que je peux écrire dans un CSV. Cependant, en raison de la configuration de mon XML sur le texte, la sortie elle-même itère de manière incorrecte. J'ai essayé beaucoup pour réparer ma sortie XML, mais je ne vois pas de moyen de le réparer.
J'ai essayé beaucoup, y compris modifier mes déclarations XML pour essayer d'écrire à la CSV de différentes manières, mais Je ne peux pas sembler avoir les lignes pour faire correspondre la façon dont j'en ai besoin d'être, à cause de la part des déclarations différentes de profondeurs. P>
Je ne me soucie pas de ce que c'est fait, alors Bien que cela correspond à la hausse, car les données sont finalement introduites dans ma base de données SQL. p>
ci-dessous est mon code, p> ci-dessous est ma sortie de courant CSV,
ci-dessous est la sortie dont j'ai besoin, P> p>
3 Réponses :
essayer de changer ce
x = (x.split ('_') [0]) p>
Pensez à ce que votre sortie CSV ressemble, alors pensez à ce que cela devrait ressembler.
Votre CSV est généré par ces deux boucles: P>
for child in root.findall('{http://checklists.nist.gov/xccdf/1.2}Group'): x = (str(child.attrib)) x = (x.split('_')[6]) a = x[:-2] firstFile.write("\n" + a + ',') for child in root: for children in child: for childrens in children.findall('{http://checklists.nist.gov/xccdf/1.2}result'): x = childrens.text if ('pass' in x): c = 'Completed' else: c = 'Ongoing' firstFile.write('\t' + '\n' + ',' + b + ',' + c + ',' + ',' + ',' + d)
Cela résolue pour moi. Je l'ai fondamentalement laissé, comme le mettez-le dans un CSV, puis lisez le CSV, stocké les colonnes sous forme de liste, supprimé des espaces vides et l'exporté.
Est-il possible d'ajouter un exemple de
xmltest.xml code>? Aussi, y a-t-il une raison pour laquelle vous ne pouvez pas utiliser CSV ?
Malheureusement non, le XML est vraiment grand et exclusif. Je peux utiliser CSV, que je regarde maintenant. Je pensais à tourner à la sortie de la déclaration dans une liste, puis de construire les colonnes de CSV. Mais je n'ai aucune idée de la façon de faire ça.
Sur la base des espaces de noms que vous utilisez dans votre code, il apparaît que vous utilisez la spécification XCCDF. D'après ce que je peux voir le ou les schémas de cette spécification sont accessibles au public. Vous devriez être capable de créer un petit fichier de test suffisamment correspondant à la structure de votre fichier actuel, mais contient des données factices au lieu des données de votre entreprise. Ce que je ferais, c'est construire un dictionnaire pour chaque ligne et utiliser Dictwriter < / a> Pour écrire ces lignes à la sortie. Cela pourrait être fait avec plusieurs boucles, mais il pourrait y avoir un moyen plus facile. Difficile à raconter sans échantillon XML.