Je joue à la fois avec l'apprentissage de python et j'essaie d'obtenir des problèmes de github sous une forme lisible. Utilisation des conseils sur Comment puis-je convertir JSON en CSV? Je suis venu avec ceci:
import json
import csv
f=open('issues.json')
data = json.load(f)
f.close()
f=open("issues.csv","wb+")
csv_file=csv.writer(f)
csv_file.writerow(["gravatar_id","position","number","votes","created_at","comments","body","title","updated_at","html_url","user","labels","state"])
for item in data:
csv_file.writerow([item["gravatar_id"], item["position"], item["number"], item["votes"], item["created_at"], item["comments"], item["body"], item["title"], item["updated_at"], item["html_url"], item["user"], item["labels"], item["state"]])
Où "issues.json" est le fichier json contenant mes problèmes github. Quand j'essaye de faire ça, je reçois
File "foo.py", line 14, in <module>
csv_file.writerow([item["gravatar_id"], item["position"], item["number"], item["votes"], item["created_at"], item["comments"], item["body"], item["title"], item["updated_at"], item["html_url"], item["user"], item["labels"], item["state"]])
TypeError: string indices must be integers
Qu'est-ce que j'oublie ici? Quels sont les "indices de chaîne"? Je suis sûr qu'une fois que cela fonctionnera, j'aurai plus de problèmes, mais pour l'instant, j'aimerais simplement que cela fonctionne!
Quand je modifie la for
déclaration pour simplement
for item in data:
print item
ce que j'obtiens c'est ... "des problèmes" - donc je fais quelque chose de plus fondamentalement erroné. Voici un peu de mon json:
{"issues":[{"gravatar_id":"44230311a3dcd684b6c5f81bf2ec9f60","position":2.0,"number":263,"votes":0,"created_at":"2010/09/17 16:06:50 -0700","comments":11,"body":"Add missing paging (Older>>) links...
quand j'imprime, data
on dirait que ça devient très bizarre:
{u'issues': [{u'body': u'Add missing paging (Older>>) lin...
print repr(data)
ouimport pprint; pprint.pprint(data)