我正在閱讀來自web API的JSON響應,該API正在返回時間系列貨幣數據,我需要能夠隔離貨幣,然後執行平均計算在他們。麻煩從Python/Pandas庫解析JSON響應數據
API返回:
rates
2016-03-01 {u'USD': 0.66342297, u'AUD': 0.92449052}
2016-03-02 {u'USD': 0.66676313, u'AUD': 0.91501037}
2016-03-03 {u'USD': 0.67240633, u'AUD': 0.914753}
2016-03-04 {u'USD': 0.68185522, u'AUD': 0.91650478}
2016-03-05 {u'USD': 0.68185522, u'AUD': 0.91650478}
2016-03-06 {u'USD': 0.68073566, u'AUD': 0.91793187}
2016-03-07 {u'USD': 0.6794346, u'AUD': 0.90979962}
2016-03-08 {u'USD': 0.67392847, u'AUD': 0.90683613}
2016-03-09 {u'USD': 0.66438164, u'AUD': 0.88859516}
2016-03-10 {u'USD': 0.66666, u'AUD': 0.89461305}
2016-03-11 {u'USD': 0.67452488, u'AUD': 0.89174887}
2016-03-12 {u'USD': 0.67452488, u'AUD': 0.89174887}
2016-03-13 {u'USD': 0.67358755, u'AUD': 0.89251092}
2016-03-14 {u'USD': 0.6667529, u'AUD': 0.88783949}
2016-03-15 {u'USD': 0.66084856, u'AUD': 0.88557738}
2016-03-16 {u'USD': 0.67423336, u'AUD': 0.89318458}
2016-03-17 {u'USD': 0.68315297, u'AUD': 0.89391181}
2016-03-18 {u'USD': 0.67954772, u'AUD': 0.89359166}
2016-03-19 {u'USD': 0.67983322, u'AUD': 0.89388959}
2016-03-20 {u'USD': 0.67951586, u'AUD': 0.89439032}
2016-03-21 {u'USD': 0.67690921, u'AUD': 0.892827}
2016-03-22 {u'USD': 0.67500204, u'AUD': 0.88599621}
2016-03-23 {u'USD': 0.67137479, u'AUD': 0.89131852}
2016-03-24 {u'USD': 0.66980223, u'AUD': 0.89002584}
2016-03-25 {u'USD': 0.6686168, u'AUD': 0.89045449}
2016-03-26 {u'USD': 0.6686168, u'AUD': 0.89045449}
2016-03-27 {u'USD': 0.66853276, u'AUD': 0.8903994}
2016-03-28 {u'USD': 0.67270532, u'AUD': 0.89168637}
2016-03-29 {u'USD': 0.68576241, u'AUD': 0.89832338}
2016-03-30 {u'USD': 0.69112465, u'AUD': 0.90136407}
2016-03-31 {u'USD': 0.69193139, u'AUD': 0.90265425}
Python代碼:從CSV
urlread = url + api_id + '&start=' + startdate + '&end=' + enddate + '&base=' + base + '&symbols=' + symbols + '&prettyprint=false'
print(urlread)
#Reads in response from URL
result = pd.read_json(urlread, orient="records")
#Removes Columns not required
del result['base']
del result['license']
del result['disclaimer']
del result['start_date']
del result['end_date']
#del json['rates']
#Prints output of JSON to screen for troubleshooting, can be commented out
print(result)
#Writes JSON output to CSV file and formats Date and Removes Headers
with open("Historical.csv", "w") as output:
result.to_csv(output, date_format='%d/%m/%Y', header = None)
輸出:
1/03/2016 {u'USD': 0.6634229700000001, u'AUD': 0.92449052}
2/03/2016 {u'USD': 0.66676313, u'AUD': 0.9150103700000001}
3/03/2016 {u'USD': 0.67240633, u'AUD': 0.9147529999999999}
4/03/2016 {u'USD': 0.68185522, u'AUD': 0.91650478}
5/03/2016 {u'USD': 0.68185522, u'AUD': 0.91650478}
6/03/2016 {u'USD': 0.68073566, u'AUD': 0.91793187}
7/03/2016 {u'USD': 0.6794346, u'AUD': 0.90979962}
8/03/2016 {u'USD': 0.67392847, u'AUD': 0.9068361300000001}
9/03/2016 {u'USD': 0.66438164, u'AUD': 0.88859516}
10/03/2016 {u'USD': 0.66666, u'AUD': 0.89461305}
所以它只是傾銷的輸出,我似乎無法對它進行解析刪除JSON格式。實際上,我需要先將所有貨幣平均,然後再轉儲至csv。我怎樣才能做到這一點?
你可以添加'json'的有效樣本嗎? – jezrael
你在那裏沒有JSON,它是Python(2)字典的表示。任何JSON解析器都會失敗。 –
我認爲這不是json,而是'print(result)' – jezrael