Estou brincando com o aprendizado de python e tentando obter problemas do github de forma legível. Usando o conselho de Como posso converter JSON em CSV? Eu vim com isso:
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"]])
Onde "issues.json" é o arquivo json que contém meus problemas no github. Quando tento executar isso, recebo
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
O que estou perdendo aqui? Quais são os "índices de string"? Tenho certeza de que, assim que eu conseguir trabalhar, terei mais problemas, mas, por enquanto, adoraria que isso funcionasse!
Quando eu ajusto a for
afirmação para simplesmente
for item in data:
print item
o que eu recebo é ... "problemas" - então estou fazendo algo mais básico errado. Aqui está um pouco do meu 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...
quando imprimo data
, parece que está ficando mungo de maneira estranha:
{u'issues': [{u'body': u'Add missing paging (Older>>) lin...
print repr(data)
ouimport pprint; pprint.pprint(data)