قسمت سوم- سناریو اول – خواندن اطلاعات یک APIدر داخل یک حلقه و ذخیره در یک فایل اکسل – ترکیب کتابخانه Requests و Pandas

برای واکشی اطلاعات چندین کشور با استفاده از REST Countries API و ذخیره داده‌ها در یک فایل اکسل، می‌توانید نام کشورهای مورد نظر را در یک لیست قرار داده و از یک حلقه for برای ارسال درخواست به API استفاده کنید. سپس داده‌ها را در یک DataFrame ذخیره کرده و به یک فایل اکسل صادر کنید.

خروجی فایل اکسل همانند زیر می باشد

کد Python برای واکشی اطلاعات چندین کشور و ذخیره آن‌ها در اکسل

import requests
import pandas as pd

# لیست کشورهای مورد نظر
countries = ["japan", "germany", "france", "canada", "brazil","Iran"]

# لیست خالی برای ذخیره داده‌های کشورها
data_list = []

# حلقه برای واکشی اطلاعات هر کشور
for country in countries:
    url = f"https://restcountries.com/v3.1/name/{country}"
    response = requests.get(url)
    
    # بررسی وضعیت درخواست
    if response.status_code == 200:
        data = response.json()
        
        # استخراج اطلاعات مورد نظر از داده‌های هر کشور
        country_info = data[0]
        country_name = country_info.get("name", {}).get("common", "N/A")
        capital = country_info.get("capital", ["N/A"])[0]
        population = country_info.get("population", "N/A")
        region = country_info.get("region", "N/A")
        subregion = country_info.get("subregion", "N/A")
        
        # افزودن داده‌ها به لیست
        data_list.append({
            "Country": country_name,
            "Capital": capital,
            "Population": population,
            "Region": region,
            "Subregion": subregion
        })
    else:
        print(f"Error fetching data for {country}: Status code {response.status_code}")

# تبدیل لیست داده‌ها به DataFrame
df = pd.DataFrame(data_list)

# ذخیره DataFrame به یک فایل اکسل
df.to_excel("countries_info.xlsx", index=False, engine="openpyxl")
print("Data saved to countries_info.xlsx")

توضیحات کد

  1. لیست کشورها: نام کشورهای مورد نظر برای واکشی اطلاعات در لیستی به نام countries ذخیره می‌شوند.
  2. حلقه واکشی: در حلقه for، برای هر کشور درخواست GET به API ارسال می‌شود.
  3. استخراج اطلاعات: داده‌های کشور شامل نام، پایتخت، جمعیت، منطقه و زیرمنطقه از JSON واکشی و در لیست data_list ذخیره می‌شود.
  4. تبدیل به DataFrame: پس از واکشی داده‌ها، لیست به یک DataFrame تبدیل می‌شود.
  5. ذخیره به فایل اکسل: با استفاده از ()to_excel، داده‌ها به یک فایل اکسل با نام countries_info.xlsx ذخیره می‌شوند.
  6. در دو خط زیرما هر مقداری که از حلقه خوانده می شود داخل  متغیر country  قرار دارد که ما همان را به آدرس API با فرمت{ variable } اضافه می کنیم

    for country in countries:

    url = f”https://restcountries.com/v3.1/name/{country}”

     

نصب کتابخانه‌های مورد نیاز

اگر pandas و openpyxl را نصب ندارید، می‌توانید با دستور زیر آن‌ها را نصب کنید:

pip install pandas openpyxl

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *