Estoy jugando con Python aprendiendo y tratando de obtener problemas de github en una forma legible. Usando el consejo sobre ¿Cómo puedo convertir JSON a CSV? Se me ocurrió esto:
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"]])
Donde "issues.json" es el archivo json que contiene mis problemas de github. Cuando trato de ejecutar eso, me sale
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
¿Que me estoy perdiendo aqui? ¿Cuáles son los "índices de cadena"? Estoy seguro de que una vez que funcione, tendré más problemas, pero por ahora, ¡me encantaría que esto funcione!
Cuando modifico la for
declaración simplemente
for item in data:
print item
lo que obtengo es ... "problemas", así que estoy haciendo algo más básico mal. Aquí hay un poco de mi 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...
cuando data
imprimo parece que se está machacando realmente extraño:
{u'issues': [{u'body': u'Add missing paging (Older>>) lin...
print repr(data)
oimport pprint; pprint.pprint(data)