Tableau에서 사용하는 Twitter API 데이터를 Python으로 성형

얻다


Twitter API에 로그인하려면 →https://developer.twitter.com/ja

API를 사용하여 사용자의 타임라인 가져오기


다음 코드를 사용하여 구현합니다.
같은 계층에 있다.py를 만들고 환경 변수를 설명하고 두 번째 스크립트에서 가져옵니다.이렇게 되면 config.피.기티그노어에서 구매하면 API 키 등이 기티허브에 업로드되는 것을 막을 수 있다.
config.py
# これらは、Twitter APIを操作する上で必要。Developerダッシュボードで作成できます。
CONSUMER_KEY=""
CONSUMER_SECRET=""
ACCESS_TOKEN=""
ACCESS_TOKEN_SECRET=""
run.py
import json
import config
import csv
from requests_oauthlib import OAuth1Session

def my_timeline():
    url = "https://api.twitter.com/1.1/statuses/user_timeline.json"
    params ={'screen_name': 'hirasawa','count' : 200}# JoeBiden
    header = ['id','User Name','User ID','Follows','Followers','User Location','content','time']
    req = twitter.get(url, params = params)
    if req.status_code == 200:
        with open('my_timeline.csv', 'w') as f:
            writer = csv.writer(f)
            writer.writerow(header)
            timeline = json.loads(req.text)
            for tweet in timeline:
                tmp = []
                tmp.append(tweet['id'])
                tmp.append(tweet['user']['name'])
                tmp.append(tweet['user']['screen_name'])
                tmp.append(tweet['user']['friends_count'])
                tmp.append(tweet['user']['followers_count'])
                tmp.append(tweet['user']['location'])
                tmp.append(tweet['text'])
                tmp.append(tweet['created_at'])
                writer.writerow(tmp)
    else:
        print("ERROR: %d" % req.status_code)

if __name__ == '__main__':
    CK = config.CONSUMER_KEY
    CS = config.CONSUMER_SECRET
    AT = config.ACCESS_TOKEN
    ATS = config.ACCESS_TOKEN_SECRET
    twitter = OAuth1Session(CK, CS, AT, ATS)
    my_timeline()

Tableau 시험록


Twitter API에서 반환된 날짜 형식은 다음과 같습니다.EEE MMM dd HH:mm:ss X yyyy그런데 이게 Tableau 처리 중에 막혔어요.

하면, 만약, 만약...


문자열이 되어 도표를 정렬할 때 곤란합니다.

Tableau 기능으로 날짜로 바꾸고 싶어요.



그리하여 비었다

Tableau의 계산 필드에 형식을 지정해도 간단합니다


Tableau의 계산 필드에서DATEPARSE를 사용해도 식별할 수 없습니다.
https://help.tableau.com/current/pro/desktop/ja-jp/data_dateparse.htm#dateparse DATEPARSE('EEE MMM dd HH:mm:ss X yyyy',Content['Created_at'])격식의 상세한 내용을 보니 틀린 것이 없는 것 같다
http://userguide.icu-project.org/formatparse/datetime

파이톤을 통해 해결


tmp.appeend의 줄을 다음과 같은 내용으로 바꾸기
3
date = datetime.strptime(tweet['created_at'],'%a %b %d %H:%M:%S %z %Y')
                tmp.append(f"{date.year}-{date.month}-{date.day} {date.hour}:{date.minute}:{date.second}")
Pythhon의 데이터 시간 해석 기호는 아래 내용을 참고하십시오
https://docs.python.org/ja/3.5/library/datetime.html
이렇게 되면 NULL이 아닌 날짜로 인식되기 때문에 문자열을 유지할 수 없는 연도→분기→월→일→시→분→초도 된다.

좋은 웹페이지 즐겨찾기