使用不同参数调用API每次都会返回相同的数据

时间:2018-02-14 07:16:21

标签: python python-requests

我正在尝试为学校项目整理一个熊猫数据框,但是这样做我反复打了一个api。我无法弄清楚为什么我一遍又一遍地返回相同的数据帧,没有列标题,任何帮助都非常赞赏。

代码如下:

a.py

import json
import requests
import pandas as pd
import numpy as np
from bs4 import BeautifulSoup


tmp = [] 
tmp_1 = []
def fetchdata(ticker):
    url = 'https://api.iextrading.com/1.0/stock/'
    time = '/chart/5y'
    get = url + ticker + time
    data = requests.get(get).json()
    length = len(data)
    # i = i + 1
    for j in range(0, length):
        date = data[j]['date']
        closing = data[j]['close']
        x = tmp.append(date)
        y = tmp_1.append(closing)
        df = pd.DataFrame(x)
        df[ticker] = tmp_1
        df_1 = df.loc[1:1000]
    return df_1

b.py

import pandas as pd
import numpy as np
from slizzy import fetchdata

df_appl_1 = fetchdata('aapl')
df_appl_2 = fetchdata('aapl')
df_appl_3 = fetchdata('aapl')
df_gold = fetchdata('gld')

print df_appl_1
print df_gold

1 个答案:

答案 0 :(得分:1)

将列表声明移动到您的函数中:

def fetchdata(ticker):
    tmp = [] 
    tmp_1 = []

就目前而言,在第一次调用函数之后,这些列表不会被清除(因为它们是全局变量),所以每次都会连续查询相同的1000个元素。