Mon code crée un dictionnaire, qui est ensuite stocké dans une variable. Je veux écrire chaque dictionnaire dans un fichier JSON, mais je veux que chaque dictionnaire soit sur une nouvelle ligne.
Mon dictionnaire:
hostDict = {"key1": "val1", "key2": "val2", "key3": {"sub_key1": "sub_val2", "sub_key2": "sub_val2", "sub_key3": "sub_val3"}, "key4": "val4"}
Une partie de mon code:
g = open('data.txt', 'a')
with g as outfile:
json.dump(hostDict, outfile)
Ceci ajoute chaque dictionnaire à 'data.txt' mais en ligne. Je veux que chaque entrée du dictionnaire soit sur la nouvelle ligne. Tout avis sera le bienvenu.
Votre question n'est pas claire. Si vous générez hostDict
dans une boucle:
with open('data.txt', 'a') as outfile:
for hostDict in ....:
json.dump(hostDict, outfile)
outfile.write('\n')
Si vous voulez dire que vous voulez que chaque variable dans hostDict
soit sur une nouvelle ligne:
with open('data.txt', 'a') as outfile:
json.dump(hostDict, outfile, indent=2)
Lorsque l'argument de mot clé indent
est défini, il ajoute automatiquement des nouvelles lignes.