แปลง JSON แบบซ้อนกันให้เป็นตาราง
คุณสมบัติอย่างหนึ่งของข้อมูล JSON คือสามารถซ้อนกันได้ นั่นคือค่าของแอตทริบิวต์หนึ่งอาจประกอบด้วยคู่แอตทริบิวต์-ค่าอีกชุดหนึ่ง ข้อมูลที่ซ้อนกันแบบนี้จะมีประโยชน์มากขึ้นเมื่อแปลง (flatten) ออกมาเป็นคอลัมน์ของ dataframe แยกต่างหาก ซับโมดูล pandas.io.json มีฟังก์ชัน json_normalize() ที่ทำหน้าที่นี้ได้โดยตรง
ข้อมูลที่ได้รับจาก Yelp API มีโครงสร้างแบบซ้อนกัน งานของคุณคือแปลงข้อมูลในระดับถัดไปที่อยู่ในคอลัมน์ coordinates และ location ให้เป็นตาราง
pandas (ในชื่อ pd) และ requests ถูกนำเข้าไว้แล้ว ผลลัพธ์จากการเรียก API ถูกเก็บไว้ในตัวแปร response
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ
คำแนะนำการฝึกหัด
- นำเข้าฟังก์ชัน
json_normalize()จากซับโมดูลio.jsonของpandas - แยกข้อมูล JSON จาก
responseแล้วกำหนดให้กับตัวแปรdata - ใช้
json_normalize()เพื่อแปลงและโหลดข้อมูลธุรกิจเข้าสู่ dataframe ชื่อcafesโดยตั้งค่าอาร์กิวเมนต์sepให้ใช้เครื่องหมายขีดล่าง (_) แทนจุด - แสดงข้อมูลแถวแรก ๆ ของ
data
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Load json_normalize()
____
# Isolate the JSON data from the API response
data = ____
# Flatten business data into a dataframe, replace separator
cafes = ____(data["businesses"],
____)
# View data
print(cafes.head())