13

只是寻找一个简单的 api 返回,我可以在其中输入一个股票代码并接收完整的公司名称:

ticker('MSFT') 将返回“Microsoft”

4

6 回答 6

13

您需要首先找到一个允许您查找股票代码并提供信息的网站/API。然后,您可以查询该 API 以获取信息。

我在这里想出了一个快速而肮脏的解决方案:

import requests


def get_symbol(symbol):
    symbol_list = requests.get("http://chstocksearch.herokuapp.com/api/{}".format(symbol)).json()

    for x in symbol_list:
        if x['symbol'] == symbol:
            return x['company']


company = get_symbol("MSFT")

print(company)

本网站仅提供公司名称。我没有进行任何错误检查。您需要该requests模块才能正常工作。请使用pip install requests.

更新:这是使用 Yahoo! 的代码示例!财务接口:

import requests


def get_symbol(symbol):
    url = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query={}&region=1&lang=en".format(symbol)

    result = requests.get(url).json()

    for x in result['ResultSet']['Result']:
        if x['symbol'] == symbol:
            return x['name']


company = get_symbol("MSFT")

print(company)
于 2016-08-16T07:00:18.783 回答
11

import yfinance as yf

msft = yf.Ticker("MSFT")

company_name = msft.info['longName']

#Output = 'Microsoft Corporation'

所以这样你就可以从股票代码中得到公司的全名

于 2020-02-01T03:52:46.167 回答
4

使用模糊匹配从公司名称中获取公司符号,反之亦然

from fuzzywuzzy import process
import requests

def getCompany(text):
    r = requests.get('https://api.iextrading.com/1.0/ref-data/symbols')
    stockList = r.json()
    return process.extractOne(text, stockList)[0]


getCompany('GOOG')
getCompany('Alphabet')
于 2019-07-18T03:13:15.277 回答
1

这是另一个 Yahoo API 调用。@masnun 的调用将返回包含搜索参数的所有结果,例如尝试 AMD (Advanced Micro Devices): http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=amd&region=1&lang=en 给你AMD (Advanced Micro Devices, Inc.), AMDA (Amedica Corporation), DOX (Amdocs Limited),等。

如果您知道股票代码,您可以尝试以下任一 Yahoo API:z http://finance.yahoo.com/d/quotes.csv?s=amd&f=nb4t8(有据可查,此特定调用要求 n=name;b4=book value;t8=1yr target price)。 https://query2.finance.yahoo.com/v7/finance/options/amd(没有很好的文档记录,但是新的......在此处查看有关此 API 的更多信息:https ://stackoverflow.com/a/40243903/933972 )

忘记包含谷歌 API,这对于股票报价来说似乎还可以,但对于期权链上的完整数据来说并不可靠:' https://www.google.com/finance?q=nyse:amd&output=json '

于 2016-10-25T15:42:43.660 回答
0

我使用 Quandl 来计算价格,所以当我遇到类似问题时,我决定在那里查看。如果你去https://www.quandl.com/data/EOD-End-of-Day-US-Stock-Prices/documentation在可用代码下大约四分之一的地方有一个下载 csv 文件的链接包含名称和代码。然后,我使用以下代码创建一个字典,其中ticker 作为键并命名一个值。

def companyNames():

`` cnames = pd.read_csv('ticker_list.csv') cnames_dict = pd.Series(cnames.Name.values, index=cnames.Ticker).to_dict()

    return cnames_dict
于 2020-02-22T02:12:35.947 回答
0

对于任何想知道如何使用公司名称而不是其符号来获取公司股价的人

import yfinance as yf

def getStock(search_term):
    results = []
    query = requests.get(f'https://yfapi.net/v6/finance/autocomplete?region=IN&lang=en&query={search_term}', 
    headers={
        'accept': 'application/json',
        'X-API-KEY': 'API_KEY'
    })
    response = query.json()
    for i in response['ResultSet']['Result']:
        final = i['symbol']
        results.append(final)

    try:
        stock = yf.Ticker(results[0])
        price = stock.info["regularMarketPrice"]
        full_name = stock.info['longName']
        curreny = stock.info["currency"]
    except Exception as e:
        print('Something went wrong')

return f"The stock price of {full_name} is {price} {curreny}"

stock = input("Enter the company's name: ")
final = getStock(stock)
print(final)

输出:

Enter the company's name: Apple
The stock price of Apple Inc. is 172.39 USD
于 2022-02-06T06:31:18.100 回答