【问题标题】:Multiple import requests from same url来自同一 url 的多个导入请求
【发布时间】:2019-02-15 11:18:53
【问题描述】:

我想使用以下代码下载股票的浮动数据,然后必须将其写入 json 文件。

import requests
import json

filename='float.json'

url = "https://api.iextrading.com/1.0/stock/aapl/stats"   
response = requests.get(url).json()
data = (response['symbol'], response['float'])

with open(filename, 'a+') as outfile:
    json.dump(data, outfile, indent=4)

现在我想下载多只股票的数据,所以在网址中显示“aapl”的地方,我想要多只股票,例如“tsla”、“goog”等。

有人可以向我解释如何实现这一目标吗?

亲切的问候

【问题讨论】:

  • 用上面的代码在 url 中迭代多个股票...让我知道你发现使用 for 循环有困难
  • 感谢 Jeevan 的快速回复,目前我不知道如何实现这一点,因为我对 python 编码很陌生,你能帮我吗?
  • 谢谢,这成功了!不过,我现在有 1 个问题,因为我正在下载大量数据,因此我有一些页面由于错误而无法加载。如何添加类似“如果错误则跳过”之类的内容?

标签: python stock


【解决方案1】:

您可以尝试以下方法吗:

import json
import requests
stk_list = ['aapl', 'tsla', 'goog']
for stk_name in stk_list:
    try:
        url = "https://api.iextrading.com/1.0/stock/{}/stats".format(stk_name)
        response = requests.get(url).json()
        data = (response['symbol'], response['float'])
        filename = 'float_{}.json'.format(stk_name)

        with open(filename, 'a+') as outfile:
            json.dump(data, outfile, indent=4)
    except:
        pass

【讨论】:

  • 谢谢,这成功了!不过,我现在有 1 个问题,因为我正在下载大量数据,因此我有一些页面由于错误而无法加载。如何添加类似“如果错误则跳过”之类的内容?
【解决方案2】:

你可以试试:

import json

import requests


stocks = ['appl', 'goog']

base_url = 'https://api.iextrading.com/1.0/stock/{}/stats'

filename='float.json'

for stock in stocks:

    try:
        response = requests.get(base_url.format(stock))
    except:
        continue
    if response.status_code == 200:
        response_json = response.json()
        data = (response_json['symbol'], response_json['float'])

        with open(filename, 'a+') as outfile:
            json.dump(data, outfile, indent=4)

【讨论】:

  • 感谢您的评论,不幸的是,这段代码给了我以下错误:import json import requests stock = ['appl', ...] base_url = 'api.iextrading.com/1.0/stock{}/stats' filename ='float.json' 对于股票中的股票:尝试:response = requests.get(base_url.format(stock)) 除外:如果 response.status_code == 200 则继续:data = (response.json()['symbol'] , response['float']) with open(filename, 'a+') as outfile: json.dump(data, outfile, indent=4)
  • 我做了一些修改,你可以试试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多