如何根据其他变量将未知的变量累加打印到有头行的列中?

我建立了一个小程序,查找股票价格从雅虎金融的股票,我输入。 你可以输入任何你想要的股票。它的工作原理是伟大的!!!。- 对于拉和打印的数据。 然而,打印一直打印股票代码,然后股票价格。 它将继续检索股票数据(受制于我内置的计数器),但也打印行情。 我希望打印输出能更多地采用列式形式–在顶部显示股票代码,然后在正确的股票代码下显示股票价格,等等。

我希望它能打印出这样的内容。

     GOOG        AMZN           FB   $1,263.64   $2,371.55      $182.74
$1,263.61   $2,370.51      $182.65   $1,262.98   $2,371.52      $182.71

但它打印出来的是:

GOOG  $1,263.64  FB   $182.74 AMZN  $2,371.55 GOOG  $1,263.64  FB  
$182.76 AMZN  $2,371.55 GOOG  $1,263.64  FB   $182.74 AMZN  $2,371.55
import bs4
import requests
from bs4 import BeautifulSoup
import time

tickers = []
price_list = []
name = None
pull_count = 0

while name != "":
    name = input('Enter a ticker (enter"") to end: ')
    if name != "":
        tickers.append(name)

# print(tickers)

while pull_count < 3:
    pull_count += 1
    for ticker in tickers:
        url = "https://finance.yahoo.com/quote/" + ticker
        response = requests.get(url)
        soup = BeautifulSoup(response.text, "lxml")
        price = (
            soup.find_all("div", {"class": "My(6px) Pos(r) smartphone_Mt(6px)"})[0]
            .find("span")
            .text
        )
        price = price.replace(",", "")
        price = float(price)  # converts these to numbers
        print(
            "{:^5}".format(ticker)
        )  # print("{:^5}".format(ticker), "      ", ("{:^5}".format(ticker2)))
        print("${:4,.2f}".format(price))

print("PROGRAM ENDED")

解决方案:

你可以使用一个包称为 yahooquery. 试试下面的方法。

from yahooquery import Ticker

symbols = ['aapl', 'msft', 'fb', 'goog', 'amzn']
t = Ticker(symbols)

data = t.price
prices = [data[symbol]['regularMarketPrice'] for symbol in symbols]

df = pd.DataFrame(prices).T
df.columns = symbols

这里是输出。

     aapl    msft      fb     goog     amzn
0  275.03  171.42  185.13  1276.31  2399.45

给TA打赏
共{{data.count}}人
人已打赏
未分类

在mysql php中,For Loop不能与Array一起工作。

2022-9-8 10:27:19

未分类

C++函数专用化

2022-9-8 10:27:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索