Convertir JSON en CSV en utilisant Python (Idle)
J'ai un fichier JSON de Latitude/Longitude que je veux pour le convertir en un fichier CSV. Je veux le faire à l'aide de Python. J'ai lu/essayé toutes les autres stackoverflow et les résultats de recherche google suggestions. J'ai réussi à aller aussi loin que la création de l'CSV et notamment les en-têtes, mais au-delà, dingo choses commence à se produire. Voici le travail d'une partie de mon code pour l'instant:
import json, csv
x="""[
{"longitude":"-73.689070","latitude":"40.718000"},
{"longitude":"-73.688400","latitude":"40.715990"},
{"longitude":"-73.688340","latitude":"40.715790"},
{"longitude":"-73.688370","latitude":"40.715500"},
{"longitude":"-73.688490","latitude":"40.715030"},
{"longitude":"-73.688810","latitude":"40.714370"},
{"longitude":"-73.688980","latitude":"40.714080"},
{"longitude":"-73.689350","latitude":"40.713390"},
{"longitude":"-73.689530","latitude":"40.712800"},
{"longitude":"-73.689740","latitude":"40.712050"},
{"longitude":"-73.689820","latitude":"40.711810"},
{"longitude":"-73.689930","latitude":"40.711380"},
{"longitude":"-73.690110","latitude":"40.710710"}
]"""
x = json.loads(x)
f = csv.writer(open("test.csv", "wb+"))
f.writerow(["longitude", "latitude"])
Et voici où il tombe à l'eau ("?" signifie que je ne sais pas quoi y mettre. J'ai essayé toutes sortes de choses que j'ai trouvé dans ma recherche de réponses):
for ? in ?:
f.writerow([?[?],?[?]])
J'ai obtenu ci-dessus à partir des réponses à cette question par little_fish. Je vois que notre JSON exemples sont un peu différents, et je suis en supposant que a quelque chose à voir avec pourquoi je ne peux pas le faire fonctionner...
Toute aide serait grandement appréciée, et je suis heureux de fournir des éclaircissements si nécessaire. Pour info, je suis nouveau sur le Python, donc, si vous allez utiliser de jargon, veuillez l'expliquer aussi clairement que possible. Merci! (P. S. ne sais Pas si ça compte, mais je suis à l'aide d'INACTIVITÉ).
source d'informationauteur Kristen G.
Vous devez vous connecter pour publier un commentaire.
Je voudrais utiliser un csv.DictWriterpuisque vous avez à traiter avec des dicts, ce qui est exactement le cas
DictWriter
est là pour.Edit:
Depuis le
.writeheader()
méthode n'a été ajouté à 2.7, vous pouvez utiliser quelque chose comme sur les anciennes versions:En boucle sur la liste un par un, et d'écrire les noms de champ explicitement est peut-être le plus simple dans ce cas.
Cela vous aidera à parcourir chaque élément et de l'écrire à votre fichier csv:
Remarque, vous êtes à la faute d'orthographe latitude (latitide) dans votre post original.
Basé sur certains de la réponse réponses, cela fonctionne comme un charme!: