2

仲間の愛好家にご挨拶!私はプロジェクトに取り組んでおり、Python を利用して Twitter API と対話しています。

目標: 「pprint.pprint(datares)」のコードで返された生データから、場所、ツイートのテキスト、作成日時、およびユーザー ID を抽出して、csv ファイルの指定された形式に変換します。

問題: ファイル内のすべての行が次のように表示されるように、csv ファイルに返す情報を取得するにはどうすればよいですか。

行: ツイートのテキスト、場所、作成場所、ユーザー ID

以下は私のコードで、これまでに何を返すことができるかを示しています。

import urllib2, json, pprint, codecs, unicodedata

u = urllib2.urlopen('http://search.twitter.com/search.json?geocode=29.762778,-95.383056,25.0mi&page=1&rpp=20')
datares = json.load(u)
##raw data returned
pprint.pprint(datares)

##open csv file
with codecs.open('Geotweets.csv',mode='w', encoding='utf-8',errors='replace') as cache:
##need to save tweets,date,area,id to file
    for tweet in datares['results']:
        print tweet['text']
        archive=tweet['text']
        unicodedata.normalize('NFKD', archive).encode('ascii','ignore')
        cache.write(archive)


for date in datares['results']:
    print date['created_at']
for area in datares['results']:
    print area['location']
for id in datares['results']:
    print id['from_user']
4

1 に答える 1

1

CSV ファイルを作成する場合はcsvモジュールを使用してください !

例えば:

with codecs.open('Geotweets.csv',mode='w', encoding='utf-8',errors='replace') as cache:
    writer = csv.writer(cache)
    for tweet in datares['results']:
        writer.writerow([tweet['text'], tweet['area'], tweet['date'], tweet['id']])

または、次のようにします。

with codecs.open('Geotweets.csv',mode='w', encoding='utf-8',errors='replace') as cache:
    writer = csv.DictWriter(cache, ["text", "area", "date", "id"])
    for tweet in datares['results']:
        writer.writerow(tweet)

明らかに、writerows()これをさらに単純化するために使用することもできます。

with codecs.open('Geotweets.csv',mode='w', encoding='utf-8',errors='replace') as cache:
    writer = csv.DictWriter(cache, ["text", "area", "date", "id"])
    writer.writerows(datares['results'])
于 2012-05-03T15:40:51.270 に答える