ฟังก์ชันแปลงโครงสร้าง Tweet ให้เรียบ
โดยทั่วไปแล้ว เราจะทำงานกับ tweet หลักร้อยหรือหลักพันรายการ ดังนั้นการกำหนดฟังก์ชันสำหรับแปลงโครงสร้างไฟล์ JSON ที่เต็มไปด้วย tweet ให้เรียบจึงเป็นเรื่องสมเหตุสมผล เรียกฟังก์ชันนี้ว่า flatten_tweets() เราจะใช้ฟังก์ชันนี้หลายครั้งในคอร์สนี้ และปรับแก้เล็กน้อยเมื่อต้องจัดการกับข้อมูลประเภทต่าง ๆ
ได้โหลด json ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ข้อมูลโซเชียลมีเดียด้วย Python
คำแนะนำการฝึกหัด
- เก็บชื่อผู้ใช้ (screen name) ไว้ใน
user-screen_name - เก็บข้อความ extended tweet ไว้ใน
extended_tweet-full_text - เก็บชื่อผู้ใช้ของ tweet ต้นฉบับที่ถูก retweet ไว้ใน
retweeted_status-user-screen_name - เก็บข้อความของ tweet ต้นฉบับที่ถูก retweet ไว้ใน
retweeted_status-text
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def flatten_tweets(tweets_json):
""" Flattens out tweet dictionaries so relevant JSON
is in a top-level dictionary."""
tweets_list = []
# Iterate through each tweet
for tweet in tweets_json:
tweet_obj = json.loads(tweet)
# Store the user screen name in 'user-screen_name'
tweet_obj[____] = ____
# Check if this is a 140+ character tweet
if 'extended_tweet' in tweet_obj:
# Store the extended tweet text in 'extended_tweet-full_text'
tweet_obj[____] = ____
if 'retweeted_status' in tweet_obj:
# Store the retweet user screen name in 'retweeted_status-user-screen_name'
tweet_obj[____] = ____
# Store the retweet text in 'retweeted_status-text'
tweet_obj[____] = ____
tweets_list.append(tweet_obj)
return tweets_list