【问题标题】:Write Tweety (python module)search results To CSV将 Tweety(python 模块)搜索结果写入 CSV
【发布时间】:2012-06-02 03:37:33
【问题描述】:

这是我正在使用的简单代码:

import tweepy

result = tweepy.api.search(q="McDonalds ",rpp=1000,page=2, geocode= "34.085422,-117.900879,100mi" )

for tweet in result:
    print tweet.text
    print tweet.geo

它返回我想要的结果。在我的 IDE 中,我得到如下结果:

@stevo_k14 I'm going back after mcdonalds haha

None

“@FunnyEvil: If bars can't serve drunk people, Mcdonalds shouldn't be able to serve fat people.”

{u'type': u'Point', u'coordinates': [33.9581, -118.1779]}

Mcdonalds for breakfast? Yup i think so :)

None

@JessicaCarrillo You make me want to go out to McDonalds right now!!!!! Lol good morning.

{u'type': u'Point', u'coordinates': [33.9443, -118.0038]}

有些返回没有位置,有些返回位置。我真正想做的是将结果直接写入一个 csv 文件,其中包含关键字、Tweet、Lat、Lon 作为我的标题。在这种情况下,关键字将是“麦当劳”。最好有一些 ifelse 语句不写结果,除非它们有位置。

我是编程新手,非常感谢您的帮助!谢谢

【问题讨论】:

    标签: python twitter csv


    【解决方案1】:

    您可以只使用 csv 模块并遍历您现有的推文。

    import tweepy
    import csv
    
    keyword = 'McDonalds '
    result = tweepy.api.search(q=keyword,rpp=1000,page=2, geocode= "34.085422,-117.900879,100mi" )
    
    with open('some.csv', 'w') as acsv:
        w = csv.writer(acsv)
        w.writerow(('Keyword', 'Tweet', 'Lat', 'Lon'))
        for tweet in result:
            lat, lon = tweet.geo if tweet.geo else ('', '')
            w.writerow((keyword, tweet.text, lat, lon))
    

    【讨论】:

    • 我需要创建一个空白的csv然后把路径名放在'some.csv'吗?
    • 我将 'some.csv' 替换为 'C:\temp\results.csv'。 'results.csv 为空白。我得到的错误是: Traceback(最近一次调用最后一次):文件“C:\Users\Niemann\Desktop\simplesearch.py​​”,第 7 行,在 中,带有 open('C:\temp\results.csv' , 'r') as acsv: IOError: [Errno 22] invalid mode ('r') or filename: 'C:\temp\results.csv'
    • 对不起,应该是w,而不是r。您正在编写 CSV,而不是阅读它。顺便说一句,read about reading and writing filesthe csv module
    • 是的,我在上一篇文章之前尝试过,应该包含它。我仍然使用“w”而不是“r”得到同样的错误
    • 我把代码改成了这个,到最后一行keyword = 'McDonalds ' result = tweepy.api.search(q=keyword,rpp=1000,page=2, geocode= "34.085422,-117.900879,100mi" ) csvfile = r'C:\temp\results.csv' with open(csvfile, 'w') as acsv: w = csv.writer(acsv) w.writerow(('Keyword', 'Tweet', 'Lat', 'Lon')) for tweet in result: lat, lon = tweet.geo if tweet.geo else ('', '') w.writerow((keyword, tweet.text, lat, lon))
    猜你喜欢
    • 2016-12-15
    • 1970-01-01
    • 2014-02-11
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多