2014-09-30 52 views
1
API訪問JSON數據

我想在這個位置訪問經濟複雜API的阿特拉斯天文臺: http://atlas.media.mit.edu/about/api/data/通過與Python

使用下面的代碼

import pandas as pd 
import numpy as np 
import matplotlib as mpl 
from urllib2 import urlopen 
import csv as csv 
import json 


url = "http://atlas.media.mit.edu/hs/export/2010/show/all/all/" 
mydata=open(urllib2.urlopen(url)) 
response = json.loads(mydata) 

對此我得到以下錯誤

--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-38-fbe696d9098d> in <module>() 
     8 
     9 url = "http://atlas.media.mit.edu/hs/export/2010/show/all/all/" 
---> 10 mydata=open(urlopen(url)) 
    11 response = json.loads(mydata) 
    12 

TypeError: coercing to Unicode: need string or buffer, instance found 

我是新來通過python訪問API的數據,所以可能有一些簡單的我很想念。目標是獲取交易數據並將其放入熊貓數據框中。作爲獎勵,如果任何人有任何在python中使用API​​的好資源,請讓我知道。

回答

4

我推薦使用requests,。它可以通過pip進行安裝,並且是一個非常乾淨的基於urllib2的界面。

import requests 
url = "http://atlas.media.mit.edu/hs/export/2010/show/all/all/" 
response = requests.get(url) 
mydata = response.text 
+0

謝謝,這回答我的問題。然而,最後我如何處理mydata中的數據......我只是得到「u」{\ n「data」:[\ n {\ n「export_val」:44456016199.05,\ n「等等。我如何將它變成表格格式,如數據框? – tomc4yt 2014-09-30 17:07:14

+1

可以'導入json'並調用json字符串中的'json.loads()'來產生一個字典,然後'使用pandas.DataFrame.from_dict()'將它放入熊貓。 – ragingSloth 2014-09-30 19:20:52