import json
import requests
# İndirimli ürünleri filtreleyen fonksiyon
def filter_discounted_products(api_data):
discounted_products = []
if "Data" in api_data and "SearchResponse" in api_data["Data"]:
for product in api_data["Data"]["SearchResponse"]["Documents"]:
campaign = product.get("CampaignBadge")
if campaign and "DiscountAmount" in campaign:
discounted_products.append({
"name": product.get("ProductName", "Unknown"),
"image": product.get("ProductPictures", [{}])[0].get("ProductPicturePath", "No Image"),
"discount": campaign["DiscountAmount"],
"normalPrice": product.get("ProductPriceInclTax", 0)
})
return discounted_products
# JSON verisini test için dış bir dosya yerine lokalden al
# Eğer çevrimdışı bir ortamdaysanız bu kısmı aktif edin
# with open('local_data.json', 'r') as file:
# api_response = json.load(file)
# filtered_products = filter_discounted_products(api_response)
# print(json.dumps(filtered_products, indent=4))
# Verilen URL'den JSON verisini al ve işle
url = "https://www.defacto.com.tr/Catalog/PartialIndexScrollResult?page=1&SortOrder=0&pageSize=24&fx_c1=1&fx_c2=1413"
try:
response = requests.get(url, timeout=10)
response.raise_for_status() # Hata varsa burada tetiklenir
api_response = response.json()
filtered_products = filter_discounted_products(api_response)
print(json.dumps(filtered_products, indent=4))
except requests.exceptions.RequestException as e:
print(f"Error: Unable to fetch data. Details: {e}")
except json.JSONDecodeError as e:
print(f"Error: Failed to parse JSON. Details: {e}")