قسمت سوم- سناریو اول – خواندن اطلاعات یک 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")
توضیحات کد
- لیست کشورها: نام کشورهای مورد نظر برای واکشی اطلاعات در لیستی به نام countries ذخیره میشوند.
- حلقه واکشی: در حلقه for، برای هر کشور درخواست GET به API ارسال میشود.
- استخراج اطلاعات: دادههای کشور شامل نام، پایتخت، جمعیت، منطقه و زیرمنطقه از JSON واکشی و در لیست data_list ذخیره میشود.
- تبدیل به DataFrame: پس از واکشی دادهها، لیست به یک DataFrame تبدیل میشود.
- ذخیره به فایل اکسل: با استفاده از ()to_excel، دادهها به یک فایل اکسل با نام countries_info.xlsx ذخیره میشوند.
- در دو خط زیرما هر مقداری که از حلقه خوانده می شود داخل متغیر country قرار دارد که ما همان را به آدرس API با فرمت{ variable } اضافه می کنیم
for country in countries:
url = f”https://restcountries.com/v3.1/name/{country}”
نصب کتابخانههای مورد نیاز
اگر pandas و openpyxl را نصب ندارید، میتوانید با دستور زیر آنها را نصب کنید:
pip install pandas openpyxl
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.