J'ai donc un fichier json dont j'ai besoin pour obtenir deux chaînes différentes pour différents fichiers. Le premier est d'aller au fichier comme il se doit, mais le second ne l'est pas.Itération du même fichier json (dict) deux fois dans la boucle
J'ai fait mes recherches et je sais que j'ai besoin de déplacer le pointeur de fichier pour commencer. Mais je ne sais pas comment le faire. Parce que je vais obtenir cette erreur:
Traceback (most recent call last):
File "v4.py", line 65, in <module>
data.seek(0,0)
AttributeError: 'str' object has no attribute 'seek'
en essayant de le déplacer en arrière avec .seek(0)
with open('idd.json', 'r') as data_file:
data = json.load(data_file)
with open('id.txt','w') as outfile:
for data, lokaatio in data[0].items():
if data=='id':
print(lokaatio, file=outfile)
data.seek(0,0)
with open('type.txt','w') as outfiles:
for data, type in data[0].items():
if data=='fileType':
print(type, file=outfiles)
Comment déplacer le fichier vous JSON (dict) pour lancer une nouvelle recherche pour ..
Mise à jour:
maintenant, il n'y a pas d'erreur, mais le second fichier reste vide. (Merci pour les lignes de code raccourcies!)
Le type de fichier n'est pas trouvé par le python. Est-ce que la seule solution restante est que quelque chose ne va pas dans mon fichier? Il semble peu près comme ceci:
[{'id': 'BDB-0bxGag9AL_C4xB0hlM', 'versionNumber': 1}, { 'widthMm': 127,0, 'heightIn': 5.0, 'width': 1500} , { 'documentid': 'xmp.483a0ab5', 'filetype': 'JPEG', 'heightMm': 127,0}, 'autorisations': 'rx--'}]
Le problème est avec 'pour data, lokaatio in ...': vous réutilisez le nom de la variable de données pour que l'ancien soit écrasé. Il contenait à l'origine un dictionnaire, pas besoin de chercher (0). – RemcoGerlich
'data' n'est pas un objet fichier. Vous avez simplement réutilisé le nom dans la boucle 'for' pour le lier à une chaîne. –
Pourriez-vous ajouter 'print (data)' après 'data' chargé à partir du fichier et afficher les résultats? – kvorobiev