【问题标题】:Looking for a more Pythonic way to grab text from individual tweets寻找一种更 Pythonic 的方式来从单个推文中获取文本
【发布时间】:2015-10-15 13:12:38
【问题描述】:

我试图只获取用户输入的某个单词/标签的前 50 条推文的文本。我尝试编写 for 循环来执行此操作,例如:

for i in range(1,50):
 self.status_texts[i] = (statuses[i])
    for i in range(1,50):
     self.tweets = self.status_texts[i]['text']

但它总是返回KeyError。我基本上是在寻找一种方法来结合 self.status_texts = (statuses[0]) 动作和检索文本的动作,目前在返回中。

这可能吗?你们中的任何人都可以给我一些关于从哪里开始的提示吗?

twitter_api = twitter.Twitter(auth=auth)


q = input('What to search for?')
q = str(q)
count = 50
search_results = twitter_api.search.tweets(q=q, count=count)
statuses = search_results['statuses']
f = open('twitter.txt', 'w')

class Tweeter():

    def puretweets(self):
        self.status_texts = (statuses[0])
        self.status_texts1 = (statuses[1])
        self.status_texts2 = (statuses[2])

        return self.status_texts['text'], self.status_texts1['text'], self.status_texts2['text']

【问题讨论】:

  • 关于代码sn-ps:前者无效(第二个循环是否嵌套)并且不清楚为什么包含第二个sn-p。谢谢
  • @JohnMee 是的,第二个循环是嵌套的 - 包括第二个 sn-p 以显示我目前如何完成我正在寻找的更优雅的解决方案。欢呼
  • 所以基本上你想返回一个长度为50的元组,其中包含推文的文本?
  • 是的,但我不知道如何让文本进入元组

标签: python twitter


【解决方案1】:

据我猜测,您想返回一个包含所有推文文本的元组,这可以很容易地做到:

def puretweets(self):
    # self.status_texts = (statuses[0])
    # self.status_texts1 = (statuses[1])
    # self.status_texts2 = (statuses[2])
    return (statuses[i] for i in range(1, 50))

或者干脆

def puretweets(self):
    return statuses[1:50]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    相关资源
    最近更新 更多