使用 Twitter API 提取和计算股票代码
Using Twitter API to extract and count stock tickers
我对编程还很陌生,一直在尝试 Swift 和 Python。请耐心等待谢谢!!
我正在尝试使用 python 从 Twitter 中读取推文(通过 Twitter API),并正在尝试检索数据以了解我的主页上讨论了哪些代码以及讨论了多少次他们被提及。当我 运行 程序并合并列表时,没有股票代码的推文显示为空 []。我的代码输出在下图中。
- 是否可以只提取带代码的推文?
- 你建议我如何删除 [],我尝试使用 .remove([]) 但运气不佳?
- 您如何建议我计算列表中的每个代码以显示谈论最多的股票 tickers/stock 代码?
比如['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
如果推文中没有提到代码,请跳过。使用 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]))
我对编程还很陌生,一直在尝试 Swift 和 Python。请耐心等待谢谢!!
我正在尝试使用 python 从 Twitter 中读取推文(通过 Twitter API),并正在尝试检索数据以了解我的主页上讨论了哪些代码以及讨论了多少次他们被提及。当我 运行 程序并合并列表时,没有股票代码的推文显示为空 []。我的代码输出在下图中。
- 是否可以只提取带代码的推文?
- 你建议我如何删除 [],我尝试使用 .remove([]) 但运气不佳?
- 您如何建议我计算列表中的每个代码以显示谈论最多的股票 tickers/stock 代码?
比如['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
如果推文中没有提到代码,请跳过。使用 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]))