ฉันกำลังเล่นกับทั้งการเรียนรู้หลามและพยายามที่จะได้รับปัญหา Github ในรูปแบบที่อ่านได้ การใช้คำแนะนำเกี่ยวกับฉันจะแปลง JSON เป็น CSV ได้อย่างไร ฉันมากับสิ่งนี้:
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"]])
โดยที่ "problems.json" เป็นไฟล์ json ที่มีปัญหา github ของฉัน เมื่อฉันพยายามที่จะเรียกใช้ฉันได้รับ
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
ฉันหายไปนี่อะไร "ดัชนีสตริง" คืออะไร ฉันแน่ใจว่าเมื่อฉันได้งานนี้ฉันจะมีปัญหาเพิ่มขึ้น แต่ตอนนี้ฉันแค่ชอบที่จะทำงาน!
เมื่อฉันปรับเปลี่ยนfor
คำสั่งเพื่อเพียงแค่
for item in data:
print item
สิ่งที่ฉันได้รับคือ ... "ปัญหา" - ดังนั้นฉันจึงทำอะไรผิดไปมากกว่าปกติ นี่เป็นบิตของ 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...
เมื่อฉันพิมพ์data
มันดูเหมือนว่าจะถูก munged อย่างผิดปกติ:
{u'issues': [{u'body': u'Add missing paging (Older>>) lin...
print repr(data)
หรือimport pprint; pprint.pprint(data)