微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

添加for循环后,csv.writerow现在可以工作了吗?

如何解决添加for循环后,csv.writerow现在可以工作了吗?

如果推文状态数据与某些关键字匹配,我会将其写入 csv 文件。当我有这个初始 on_status 代码时,csvwrite 运行良好:

    def on_status(self,status):

        # Creating this formatting so when exported to csv the tweet stays on one line
        tweet_text = "'" + status.text.replace('\n',' ') + "'"
        # Filter for keyword,only write csv if correct keyword(s) found
        csvw.writerow([status.id,status.user.screen_name,status.created_at.strftime('%d/%m/%y'),status.user.followers_count,tweet_text])
        return True

但是,当我使用 filterKeyword 添加 for 循环时,csvwrite 不会填满。 csv 文件完全为空,没有任何值。但是,它确实会打印出“按关键字找到的推文:+ word”和“在 csvw 之后”部分。不能在我的一生中正确调试它..

    def on_status(self,only write csv if correct keyword(s) found
        for word in filterKeywords:
            if word in tweet_text:
                print("Found tweet by keyword: " + word)
                csvw.writerow([status.id,tweet_text])
                print("after csvw")
        return True

非常感谢任何帮助!

解决方法

似乎 csvw 超出了您在 main 中实例化它的范围,因此请尝试在您的函数中添加 global csvw 声明:

    def on_status(self,status):
        # add this line
        global csvw

        ... 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。