使用Twitter API提取和统计股票行情

2024-04-27 10:31:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编程相当陌生,一直涉猎Swift和Python。请耐心点谢谢

我正在尝试使用python从Twitter上读取推文(通过Twitter API),并试图检索我的主页上正在谈论的股票代码的数据以及它们被提及的次数。当我运行程序并合并列表时,没有股票代码的tweet显示为空[]。我的代码输出在下图中

  1. 是否有可能只提取带有标签的推文
  2. 您建议我如何删除[],我曾尝试使用。删除([]),但运气不好
  3. 您建议我如何计算列表中的每个股票代码,以显示谈论最多的股票代码/股票符号

例如,如果['PYPL']出现了2次,['TSLA']出现了4次,['AAPL']出现了12次,我希望有一个像这样的输出:

AAPL:12 TSLA:4 PYPL:3

提前谢谢你

这是代码(不包括twitter/API键):

feed = API.home_timeline(count = 200)

array_of_tickers = []

for tweet in feed:
    iden = str(tweet.id) + '-' + tweet.text
    tickers = re.findall(r'[$][A-Za-z][\S]*', iden)
    array_of_tickers.append(tickers)
    print(tickers)

array_of_tickers.remove("")
print(array_of_tickers)

OUPUT OF CODE


Tags: of代码api列表feedtwitterarray建议
1条回答
网友
1楼 · 发布于 2024-04-27 10:31:32

如果推文中没有提到股票代码,请跳过它。使用dict跟踪提及次数

feed = API.home_timeline(count = 200)

array_of_tickers = []
counts = {}

for tweet in feed:
    iden = str(tweet.id) + '-' + tweet.text
    tickers = re.findall(r'[$][A-Za-z][\S]*', iden)

    # do this if you only want to count each ticker once in a tweet
    tickers = set(tickers)

    if len(tickers) < 1:
        continue

    array_of_tickers.append(tickers)

    for ticker in tickers:
        ticker = ticker.upper()
        counts[ticker] = counts[ticker] + 1 if ticker in counts else 1

sorted_tickers = sorted(counts.items(), key=lambda x: x[1], reverse=True)

print(', '.join([f'{k}: {v}' for k,v in sorted_tickers]))

相关问题 更多 >