Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python for循环API请求_Python_Api_For Loop - Fatal编程技术网

Python for循环API请求

Python for循环API请求,python,api,for-loop,Python,Api,For Loop,我正在提取数据 我能够在本地机器上保存JSON文件。 我想运行几个股票的请求。 我该怎么做? 我试着玩for循环,但结果不太好。我把代码附在下面。 结果是: AAPL [] TSLA [] 谢谢你,塔尔 try: # For Python 3.0 and later from urllib.request import urlopen except ImportError: # Fall back to Python 2's urllib2 from urllib2 import urlope

我正在提取数据 我能够在本地机器上保存JSON文件。 我想运行几个股票的请求。 我该怎么做? 我试着玩for循环,但结果不太好。我把代码附在下面。 结果是:

AAPL
[]
TSLA
[]
谢谢你,塔尔

try:
# For Python 3.0 and later
from urllib.request import urlopen
except ImportError:
# Fall back to Python 2's urllib2
from urllib2 import urlopen
import requests
import json
import time


def get_jsonparsed_data(url):
"""
Receive the content of ``url``, parse it as JSON and return the object.

Parameters
----------
url : str

Returns
-------
dict
"""
stock_symbol = ["AAPL","TSLA"]
for symbol in stock_symbol:
print (symbol)
#Sending the API request
r = requests.get('https://financialmodelingprep.com/api/v3/income-statement/symbol={stock_symbol}?limit=120&apikey={removed by me})
packages_JSON = r.json()
print(packages_JSON)
#Exporting the data into JSON file
with open('stocks_data321.json', 'w', encoding='utf-8') as f: 
    json.dump(packages_JSON, f, ensure_ascii=False, indent=4)

迭代查询多个API将花费大量时间。考虑使用<代码>引用<代码>或代码> AcsiCIO < /代码>同时进行请求并加快进程。

简而言之,您应该为每个API执行以下操作:

import threading

for provider in [...]:  # list of APIs to query
    t = threading.Thread(target=api_request_function, args=(provider, ...))
    t.start()

不过,最好先阅读以了解线程方法的作用和原因。

尝试在get请求中复制url,将其粘贴到浏览器中,然后查看是否得到响应。如果是,而不是r.json(),则执行r.text如果希望异步支持同时查询多个api,请使用。只有蟒蛇3。这能回答你的问题吗?