Quandl数据,API调用

时间:2016-01-28 22:57:51

标签: python api request quandl

最近我正在使用API​​调用来读取Quandl中的一些股票价格数据库来提取数据。但我真的很困惑我的例子。

import requests

api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/%s.json' % stock
session = requests.Session()
session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
raw_data = session.get(api_url)

任何人都可以向我解释一下吗?

1)对于api_url,如果我复制了webepage,则说404找不到。因此,如果我想使用其他数据库,我该如何准备这个api_usl?什么'%stock'意思?

2)这里的请求看起来像是用来提取数据,raw_data的格式是什么?我如何知道列名?如何提取列?

1 个答案:

答案 0 :(得分:1)

扩展我的评论:

  1. % stock是字符串格式化操作,将前面字符串中的%s替换为stock引用的值。有关详细信息,请参阅here
  2. raw_data实际引用了一个Response对象(requests模块的一部分 - 找到的详细信息here
  3. 扩展您的代码。

    import requests
    #Set the stock we are interested in, AAPL is Apple stock code
    stock = 'AAPL'
    #Your code
    api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/%s.json' % stock
    session = requests.Session()
    session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
    raw_data = session.get(api_url)
    
    # Probably want to check that requests.Response is 200 - OK here 
    # to make sure we got the content successfully.
    
    # requests.Response has a function to return json file as python dict
    aapl_stock = raw_data.json()
    # We can then look at the keys to see what we have access to
    aapl_stock.keys()
    # column_names Seems to be describing the individual data points
    aapl_stock['column_names']
    # A big list of data, lets just look at the first ten points...
    aapl_stock['data'][0:10]
    

    编辑以回答评论中的问题

    因此aapl_stock[column_names]分别显示DateOpen作为第一个和第二个值。这意味着它们对应于数据的每个元素中的位置01

    因此,要访问日期,请使用aapl_stock['data'][0:10][0](前十个项目的日期值)并访问开放使用的值aapl_stock['data'][0:78][1]开头值为78项目)。

    要获取数据集中每个值的列表,其中每个元素都是包含Date和Open值的列表,您可以添加类似aapl_date_open = aapl_stock['data'][:][0:1]的内容。

    如果您是python的新手,我认真推荐查看列表切片表示法,可以找到快速介绍here