le groupe de production d'objets json sur la nouvelle ligne au lieu d'une seule ligne
Je suis le chargement d'un fichier json et d'essayer de tirer certaines valeurs alors que la sortie du groupe de valeurs par ligne.
Le courant de sortie ressemble à ceci:
{"time":"1:2:2","post":"1","user":"4","text":"Masaru Emoto"}{"time":"1:3:8","post":"8","user":"5","text":"Meteors"}{"time":"7:4:5","post":"1","user":"8","text":"Olympics"}
Et je veux qu'elle ressemble à ceci:
{"time":"1:2:2","post":"1","user":"4","text":"Masaru Emoto"}
{"time":"1:3:8","post":"8","user":"5","text":"Meteors"}
{"time":"7:4:5","post":"1","user":"8","text":"Olympics"}
Je ne vois pas où ajouter le "\n" pour fixer la sortie. Merci d'avance pour l'aide.
Code:
import json
json_data = open('somefile.json', 'r+').read().decode("utf-8")
jdata = json.loads(json_data)
def id_generator(d):
with open('formatted_file' + '.json', 'w') as outfile:
for k, v in d.items():
if isinstance(v, dict):
id_generator(v)
if isinstance(v, list):
for post in v:
formated = {"time":post.get('created_time'),"user":post['from']['id'],
"post":post.get('id'),"text":post.get('description')}
out = json.dumps(formated, separators=(',', ':'))
outfile.write(out)
if __name__ == '__main__':
try:
id_generator(jdata)
except TypeError:
pass
outfile.write(out + '\n')
?Je ne vois aucune différence dans le courant de sortie et le comme ceci de sortie.
Je pense que quelqu'un l'a édité, à l'origine, il ne serait pas ajouter le caractère de saut de ligne, la sortie a été d'une chaîne unique.
OriginalL'auteur adam | 2014-02-05
Vous devez vous connecter pour publier un commentaire.
La mise en forme un peu cassé votre message, mais je suppose que vous voulez de saut de ligne après chaque appel système write (chaque post).
Il suffit de ne
outfile.write(out + '\n')
. Le\n
seront automatiquement converties en ligne séparateur de système donné.OriginalL'auteur Xarn