Gram zarówno z nauką Pythona, jak i próbowaniem przekształcenia problemów z github w czytelną formę. Korzystając ze porady dotyczącej sposobu konwersji JSON na CSV? Wymyśliłem to:
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"]])
Gdzie „Issues.json” to plik json zawierający moje problemy z github. Kiedy próbuję to uruchomić, rozumiem
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
Czego tu brakuje? Jakie są „indeksy ciągów”? Jestem pewien, że kiedy już zacznę działać, będę mieć więcej problemów, ale na razie chciałbym, żeby to zadziałało!
Kiedy poprawiam for
oświadczenie po prostu
for item in data:
print item
dostaję ... „problemy” - więc robię coś bardziej podstawowego, złego. Oto trochę mojego Jsona:
{"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...
kiedy data
drukuję, wygląda to na dziwnie mungowane:
{u'issues': [{u'body': u'Add missing paging (Older>>) lin...
print repr(data)
lubimport pprint; pprint.pprint(data)