Pandas

Pandas — خواندن JSON (Read JSON)

آخرین بروزرسانی: 1404/08/28

خواندن JSON (Read JSON)

اینجا با خواندن JSON با pandas آشنا می شوی. JSON یک متن ساده است که شبیه شیء برنامه نویسی نوشته می شود و برای نگه داشتن داده های زیاد خیلی محبوب است.

آشنایی با خواندن JSON در pandas

در منبع گفته شده که مجموعه داده های بزرگ خیلی وقت ها به صورت JSON ذخیره یا از سیستم ها استخراج می شوند. JSON متن ساده است، اما شکل آن شبیه یک شیء است و در دنیای برنامه نویسی، از جمله برای pandas، کاملاً شناخته شده است.

در مثال های منبع از فایلی به نام data.json استفاده شده است. لینک باز کردن این فایل هم آن جا قرار داده شده تا ساختار واقعی داده را ببینی.

خواندن فایل JSON با تابع read_json

برای لود کردن فایل JSON داخل یک DataFrame، در منبع از تابع read_json() استفاده شده است. کافی است pandas را ایمپورت کنی و مسیر فایل را به این تابع بدهی.

import pandas as pd

df = pd.read_json("data.json")

print(df.to_string())

مشاهده در ادیتور

در منبع گفته شده از متد to_string() استفاده کن تا کل DataFrame بدون خلاصه شدن چاپ شود. این کار مخصوصاً وقتی جدول کوچک است، فهم خروجی را راحت تر می کند.

نکته: اگر از print(df) ساده استفاده کنی و جدول بزرگ باشد، pandas فقط بخش هایی از ابتدا و انتهای جدول را نشان می دهد؛ این رفتار در فصل CSV هم توضیح داده شده بود.

Dictionary به عنوان JSON در pandas

در بخش بعدی منبع یک نکته مهم آمده است: JSON = Python Dictionary. یعنی شکل یک شئ JSON دقیقاً شبیه شکل یک دیکشنری (Dictionary) در پایتون است.

اگر داده JSON در فایل نباشد و همین جا در کد به شکل دیکشنری پایتون نوشته شده باشد، می توانی آن را مستقیم به DataFrame بدهی و لازم نیست اول در فایل ذخیره شود.

import pandas as pd

data = {
  "Duration": {
    "0": 60,
    "1": 60,
    "2": 60,
    "3": 45,
    "4": 45,
    "5": 60
  },
  "Pulse": {
    "0": 110,
    "1": 117,
    "2": 103,
    "3": 109,
    "4": 117,
    "5": 102
  },
  "Maxpulse": {
    "0": 130,
    "1": 145,
    "2": 135,
    "3": 175,
    "4": 148,
    "5": 127
  },
  "Calories": {
    "0": 409,
    "1": 479,
    "2": 340,
    "3": 282,
    "4": 406,
    "5": 300
  }
}

df = pd.DataFrame(data)

print(df)

مشاهده در ادیتور

در این مثال، ساختار data شبیه JSON است، اما در واقع یک دیکشنری پایتون است. منبع نشان می دهد که pandas بدون مشکل همین ساختار را به یک DataFrame تبدیل می کند.

نکته: این تشابه بین JSON و دیکشنری باعث می شود انتقال داده بین APIها، فایل ها و کد پایتون راحت تر انجام شود.

گام های پیشنهادی برای تمرین خواندن JSON

  1. یک فایل data.json بساز و چند رکورد ساده در آن قرار بده.
  2. در پایتون، کتابخانه pandas را ایمپورت کن و با read_json() فایل را بخوان.
  3. یک بار از print(df.to_string()) استفاده کن و خروجی را ببین.
  4. در یک فایل دیگر همان داده را به صورت دیکشنری پایتون بساز و مستقیم به DataFrame بده.
  5. دو روش را مقایسه کن تا مفهوم خواندن JSON با pandas برایت جا بیفتد.

برای مرور، صفحه خواندن CSV با pandas را هم ببین تا تفاوت کار با JSON و CSV را بهتر حس کنی. همچنین خود فصل خواندن JSON با pandas می تواند مرجع سریع تو برای مثال های کاربردی باشد.

جمع بندی سریع

  • JSON یک متن ساخت یافته است که برای داده های بزرگ استفاده می شود.
  • با تابع read_json() می توانی فایل JSON را به DataFrame تبدیل کنی.
  • متد to_string() کل جدول را بدون خلاصه شدن چاپ می کند.
  • شکل JSON شبیه دیکشنری پایتون است و pandas هر دو را می پذیرد.
  • می توانی هم از فایل JSON و هم از دیکشنری برای ساخت DataFrame استفاده کنی.