Saya bermain dengan kedua belajar python dan mencoba untuk mendapatkan masalah github ke dalam bentuk yang mudah dibaca. Menggunakan saran tentang Bagaimana saya bisa mengkonversi JSON ke CSV? Saya datang dengan ini:
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"]])
Di mana "issues.json" adalah file json yang berisi masalah github saya. Ketika saya mencoba menjalankannya, saya mengerti
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
Apa yang kulewatkan di sini? Manakah "indeks string" itu? Saya yakin bahwa sekali ini berfungsi, saya akan memiliki lebih banyak masalah, tetapi untuk sekarang, saya ingin ini bekerja!
Ketika saya mengubah for
pernyataan itu menjadi sederhana
for item in data:
print item
apa yang saya dapatkan adalah ... "masalah" - jadi saya melakukan sesuatu yang lebih mendasar salah. Inilah sedikit json saya:
{"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...
ketika saya mencetaknya data
kelihatannya aneh sekali:
{u'issues': [{u'body': u'Add missing paging (Older>>) lin...
print repr(data)
atauimport pprint; pprint.pprint(data)