【发布时间】:2021-08-27 17:58:25
【问题描述】:
我正在使用 Twitter API 抓取数据,当我使用打印命令时,我可以看到我想要的所有数据,特别是我输入的推文行和日期。
但是,当我将数据格式化为 pandas 数据框/csv 时,它只显示第一行结果。我真的很困惑该怎么做,非常感谢所有的帮助。谢谢:)
#importing key term and date of tweets from twitter archive
client_key = 'code'
client_secret = 'code'
import base64
key_secret = '{}:{}'.format(client_key, client_secret).encode('ascii')
b64_encoded_key = base64.b64encode(key_secret)
b64_encoded_key = b64_encoded_key.decode('ascii')
import requests
base_url = 'https://api.twitter.com/'
auth_url = '{}oauth2/token'.format(base_url)
auth_headers = {
'Authorization': 'Basic {}'.format(b64_encoded_key),
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
}
auth_data = {
'grant_type': 'client_credentials'
}
auth_resp = requests.post(auth_url, headers=auth_headers, data=auth_data)
auth_resp.status_code
auth_resp.json().keys()
access_token = auth_resp.json()['access_token']
search_headers = {
'Authorization': 'Bearer {}'.format(access_token)
}
search_params = {
'q': 'Key Term',
'count': 5,
'start_time' : '2019-1-1',
'end_time' : '2019-2-1',
'place.fields' : 'USA',
'lang' : 'en'
}
search_url = '{}1.1/search/tweets.json'.format(base_url)
search_resp = requests.get(search_url, headers=search_headers, params=search_params)
tweet_data = search_resp.json()
import numpy as np
import pandas as pd
for x in tweet_data['statuses']:
data = {'Date':[(x['created_at'])],'Text':[(x['text'])]}
df = pd.DataFrame(data)
df.to_csv("Tweet_data.csv")
print(df)
【问题讨论】:
标签: python json pandas dataframe twitter