मैं दोनों सीखने के अजगर के साथ खेल रहा हूं और गीथब मुद्दों को एक पठनीय रूप में प्राप्त करने की कोशिश कर रहा हूं। मैं 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"]])
जहाँ "issues.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
मुझे जो मिल रहा है ... "मुद्दे" - इसलिए मैं कुछ और गलत कर रहा हूं। यहाँ मेरा एक सा है:
{"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
करता हूं तो ऐसा लगता है कि यह वास्तव में अजीब तरह से घुल रहा है:
{u'issues': [{u'body': u'Add missing paging (Older>>) lin...
print repr(data)
याimport pprint; pprint.pprint(data)