![](/img/trans.png)
[英]How to iterate through JSON objects (results of twitter api search) in Python and save to a CSV file?
[英]How to iterate through JSON objects in Python and save to a CSV file?
我有Python腳本,它以JSON格式(至少我認為其JSON格式)從API檢索數據。 我想遍歷每個“對象”並寫入CSV文件。
這是從api返回的數據:
[
{
"bids_won": "7",
"partner_revenue": "$0.01",
"profit": "$0.00",
"campaign_id": "test 1",
"post_click_conversions": "0",
"total_cost": "$0.01",
"total_media_cost": "$0.01",
"post_view_conversions": "2",
"adjusted_partner_cost": "$0.01",
"clicks": "0",
"day": "August 21, 2011"
},
{
"bids_won": "30,209",
"partner_revenue": "$38.67",
"profit": "$8.92",
"campaign_id": "test 2",
"post_click_conversions": "0",
"total_cost": "$29.75",
"total_media_cost": "$29.75",
"post_view_conversions": "0",
"adjusted_partner_cost ": "$25.26",
"clicks": "10",
"day": "August 21, 2011"
}
]
如何遍歷這些“對象”並將其寫入CSV文件? 我當前嘗試遍歷它的過程導致腳本遍歷每個字母。
感謝幫助。
PS我正在使用python 2.7
要將其轉換為適當的csv文件,並以鍵作為標題行,應執行以下操作,其中“ data”是包含json的字符串:
import json
from csv import DictWriter
dicts = json.loads(data)
the_file = open("sample.csv", "w")
writer = DictWriter(the_file, dicts[0].keys())
writer.writeheader()
writer.writerows(dicts)
the_file.close()
請注意,自Python 2.6起,simplejson已作為“ json”包含在標准庫中。
import json
import csv
temp = json.load(open('filename.json','r'))
output =[]
for each in temp:
row = {}
row['field1'] =each['field1']
row['field2'] = each['field2']
output.append(row)
file = open( "filename_destination.csv", "w")
fileWriter = csv.writer(file , delimiter=",",quotechar='"', quoting=csv.QUOTE_MINIMAL)
Header = ['field1','field2']
fileWriter.writerow(Header)
for x in output:
te = [x['field1'],x['field2']]
fileWriter.writerow(te)
file.close()
嘗試使用simplejson
將JSON字符串轉換為本地Python對象。 然后,您應該能夠使用標准的for循環遍歷對象。
http://pypi.python.org/pypi/simplejson/
data = simplejson.loads(JSON_STRING)
您應該使用simplejson
: http : //pypi.python.org/pypi/simplejson/
使用simplejson,您可以簡單地執行以下操作:
import simplejson as json
info = """[
{
"bids_won": "7",
"partner_revenue": "$0.01",
"profit": "$0.00",
"campaign_id": "test 1",
"post_click_conversions": "0",
"total_cost": "$0.01",
"total_media_cost": "$0.01",
"post_view_conversions": "2",
"adjusted_partner_cost": "$0.01",
"clicks": "0",
"day": "August 21, 2011"
},
{
"bids_won": "30,209",
"partner_revenue": "$38.67",
"profit": "$8.92",
"campaign_id": "test 2",
"post_click_conversions": "0",
"total_cost": "$29.75",
"total_media_cost": "$29.75",
"post_view_conversions": "0",
"adjusted_partner_cost ": "$25.26",
"clicks": "10",
"day": "August 21, 2011"
}
]"""
data = json.loads(info)
並且data
將是您可以循環訪問的python列表。
最后,我為請求返回了一個略有不同的URL,該URL返回了原始CSV。 我將內容轉儲到CSV文件中:
f = open('report.csv', 'wb')
f.write(response_content)
f.close
這不是理想的解決方案,因為我仍然無法遍歷CSV對象(遍歷每個字符),但是我能夠創建格式合理的csv文件,因此現在還可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.