Hem python öğrenmekle hem de github sorunlarını okunabilir bir forma sokmaya çalışıyorum. Tavsiye kullanma Ben CSV JSON dönüştürebilirsiniz nasıl? Ben bununla geldim:
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"]])
Nerede "issue.json" benim github sorunları içeren json dosyasıdır. Bunu çalıştırmaya çalıştığımda,
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
Burada ne eksik? "Dize indeksleri" hangileri? Eminim bu işe başladıktan sonra daha fazla sorunum olacak, ama şimdilik bunun işe yaramasını çok isterim!
İfadeyi for
basitçe
for item in data:
print item
elde ettiğim şey ... "sorunlar" - bu yüzden daha temel bir yanlış yapıyorum. İşte benim json biraz:
{"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...
Ben yazdırdığımda data
gerçekten garip bir şekilde munged gibi görünüyor:
{u'issues': [{u'body': u'Add missing paging (Older>>) lin...
print repr(data)
ya daimport pprint; pprint.pprint(data)