6.7 ג'סון, ובקשות הרצאה
מה זה JSON¶
- ג'סון זה דרך שבה אנחנו יכולים לשמור מידע בצורה של מילון, דרך שקריאה וברורה גם למתכנתים, וגם קלה למחשב לפרסור.
- דוגמה לקובץ ג'סון
{ "squadName": "Super hero squad", "homeTown": "Metro City", "formed": 2016, "secretBase": "Super tower", "active": true, "members": [ { "name": "Molecule Man", "age": 29, "secretIdentity": "Dan Jukes", "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"] }, { "name": "Madame Uppercut", "age": 39, "secretIdentity": "Jane Wilson", "powers": [ "Million tonne punch", "Damage resistance", "Superhuman reflexes" ] } ] }
מודול json¶
- מודול מובנה!
קריאה מקבצי json¶
import json
from pathlib import Path
json_path = Path("config.json")
json_data = json_path.read_text()
# JSON string
print(json_data) # Output: '{"name": "John", "age": 30, "city": "New York"}'
# Convert json string to dict
data_dict = json.loads(json_data)
# Accessing data
print("Name:", data_dict['name'])
print("Age:", data_dict['age'])
print("City:", data_dict['city'])
- ניתן לראות שטענו את הקובץ json למילון
כתיבה לקבצי json¶
- כתיבת מילונים לקבצי json
ממשקי API¶
- להמון אתרים יש ממשק API, ממשק API הוא דרך שבה אפשר לגרום לאתר לעשות/להחזיר כל מיני פעולות.
- ממשקי API הן ממשקים מיוחדים של האתרים שאנחנו מתממשקים בדיוק כמו שאנחנו נגשים לאתר, לכל נקודת API יש איזשהו קישור כמו https://jsonplaceholder.typicode.com/posts/1, כשאנחנו נגשים לנקודה אנחנו צריכים להעביר לה כל מיני פרמטרים שמציינים איזה פעולה אנחנו רוצים לעשות מול הממשק, וכל מיני פרמטרים.
- אז מה אפשר לעשות מול API של אתר? לקבל מידע על דברים באתר כמו משתמשים, לעדכן פרטים, לשלוח פוסטים וכל דבר שאנחנו יכולים לעשות באתר עצמו.
- נדבר קצת על סוגים של בקשות של API:
- בקשת GET: בקשת GET היא בקשה שבדרך כלל מציינת שאנחנו רוצים לקבל מידע מהנקודת API
- בקשת POST: בקשת POST היא בקשה שבדרך כלל מציינת שאנחנו רוצים לעדכן מידע מהנקודת API.
מודול requests¶
- הריצו
pip install requests - מודול זה מאפשר לנו לשלוח בקשות לאתרים בצורה שמאפשרת לנו לעשות המון דברים, נשתמש במודול הזה כדי להתממשק מול נקודות API.
בקשות GET¶
import requests
# URL for a sample API
api_url = 'https://jsonplaceholder.typicode.com/posts/1'
# Make a GET request
response = requests.get(api_url)
# Print the response content
print(response.text)
print(response.json())
- הפונקציה
requests.get שולחת בקשת get לurl שהבאנו לו.- אפשר לגשת לתשובה של בקשה באמצעות
response.text או response.json()- אנחנו יכולים גם להעביר פרמטרים ל API כשאנחנו עושים GET
import requests
# URL with parameters
api_url = 'https://jsonplaceholder.typicode.com/posts'
params = {'userId': 1}
# Make a GET request with parameters
response = requests.get(api_url, params=params)
# Print the response content
print(response.json())
בקשות POST¶
import requests
# URL for a sample API
api_url = 'https://jsonplaceholder.typicode.com/posts'
# Data to be sent in the POST request
post_data = {'title': 'foo', 'body': 'bar', 'userId': 1}
# Make a POST request
response = requests.post(api_url, json=post_data)
# Print the response content
print(response.json())
- אנחנו יכולים לעשות בקשות POST לאתר (כדי לשלוח פרטים לאתר) באמצעות הפונקציה
requests.post, במקרה הזה אנחנו מעלים פוסטים לאתר באמצעות הבקשה.
סיכום¶
- למדנו עד כו לא מעט על אתרים ועל איך לכתוב קוד פייתון שמתממשק עם אתרים, אם זה עם העמודים של האתר (html), או ממש עם API עם json-ים, זה ממש רק הקצה של הקרחון של הדברים שאפשר לעשות עם פייתון כדי להתממשק עם אתרים, אם התחום מעניין אתכם, אתם יכולים להמשיך לקרוא וללמוד.