【问题标题】:Accessing Json data through api with Python使用Python通过api访问Json数据
【发布时间】:2014-11-24 13:26:07
【问题描述】:

我正在尝试在此位置访问 Atlas Observatory of Economic Complexity API: http://atlas.media.mit.edu/about/api/data/

使用以下代码

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 的良好资源,请告诉我。

【问题讨论】:

    标签: python json api web-scraping economics


    【解决方案1】:

    我推荐使用requestshttp://docs.python-requests.org/en/latest/。它可以通过 pip 安装,并且是建立在 urllib2 之上的非常干净的界面。

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

    【讨论】:

    • 谢谢,这回答了我的问题。但是,最后我如何处理 mydata 中的数据...我只得到 "u'{\n "data": [\n {\n "export_val": 44456016199.05,\n" 等等。如何将其转换为表格格式,例如数据框?
    • 可以 import json 并在 json 字符串上调用 json.loads() 以生成字典,然后 use pandas.DataFrame.from_dict() 将其放入 pandas。
    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 2014-09-07
    相关资源
    最近更新 更多