تقرأ Narwhal API سلسلة لهيئة الإحصاء الكندية باستخدام معرّف المتجه، مثل statcan:v41690973. ويُستخدم معرّف جدول لهيئة الإحصاء الكندية، مثل 10-10-0106-01، للعثور على الجدول في بحث الكتالوج. اقرأ رقم المتجه للسلسلة التي اخترتها من صفحة الجدول على statcan.gc.ca، ثم مرره إلى مسار السلسلة. لا يوجد حتى الآن مسار يسرد متجهات جدول. يعيد بحث الكتالوج إدخالات للجداول، لذلك ميّز بين رقم الجدول ورقم متجه السلسلة أثناء العمل.
نفّذ ذلك باستخدام واجهة API
- اضبط مفتاح API الخاص بك ضع مفتاح Narwhal API في
NARWHAL_API_KEYوثبّت مكتبة requests في Python. يقرأ كل مثال Python المفتاح من متغير البيئة هذا ويرسله في ترويسة Authorization. شغّل الأمثلة في الصدفة نفسها التي ضبطت فيها المتغير. يمكنك إنشاء حساب إذا كنت تحتاج إلى مفتاح.export NARWHAL_API_KEY="YOUR_API_KEY" python -m pip install requests - ابحث عن الجدول ابحث باستخدام
qوsource=statcan. استخدم رقم الجدول إن كان لديك، أو ابحث بموضوع مثل أسعار المستهلك. اطبع العنوان والتواتر وأول فترة وآخر فترة للتحقق من النتيجة. البحث في الكتالوج متاح على جميع الخطط ولا يجري أي استدعاء لهيئة الإحصاء الكندية. تحتوي نتيجة البحث عن جدول على القالبstatcan:v{vector}؛ وما زلت تحتاج إلى رقم متجه السلسلة.import os import requests response = requests.get( "https://api.narwhalapi.com/v1/economics/catalogue", headers={"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}, params={"q": "10-10-0106-01", "source": "statcan", "limit": 25}, timeout=10, ) response.raise_for_status() for table in response.json()["results"]: print( table["title"], table["frequency"], table.get("first_period"), table.get("last_period"), sep=" | ", ) - انسخ رقم متجه السلسلة اقرأ رقم الجدول من عنوان النتيجة. على سبيل المثال، يتضمن البحث عن أسعار المستهلك نتيجة شهرية يحتوي عنوانها على
Statistics Canada table 10-10-0106-01. افتح صفحة الجدول الذي اخترته على statcan.gc.ca وانسخ رقم المتجه للسلسلة التي تريدها. يأخذ المتجه شكلvتتبعها أرقام، مثلv41690973. أضف البادئةstatcan:لطلب API. يحدد رقم الجدول الجدول؛ ويحدد المتجه السلسلة التي ستقرأها. - تحقق من تعريف السلسلة أرسل معرّف السلسلة الكامل في معامل الاستعلام
id. تحقق من العنوان والتواتر وunit_labelالمُعادة قبل استخدام قيمها. بالنسبة إلىstatcan:v41690973، العنوان هوCanada;All-items، والتواتر شهري، وتسمية الوحدة هي2002=100. تتضمن الاستجابة أيضًا نسبة البيانات إلى مصدرها ورابط الترخيص. احتفظ بهذه التفاصيل مع أي بيانات تخزنها أو تعرضها.import os import requests response = requests.get( "https://api.narwhalapi.com/v1/economics/catalogue/series", headers={"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}, params={"id": "statcan:v41690973"}, timeout=10, ) response.raise_for_status() series = response.json() for field in ("id", "title", "frequency", "unit_label", "attribution", "licence_url"): print(f"{field}: {series[field]}") - اقرأ عدة قيم حديثة معًا لعدة متجهات، أرسل معرّفاتها الكاملة في معامل
idsواحد مفصولة بفواصل إلى مسار أحدث القيم. تقبل الدفعة ما يصل إلى 50 معرّفًا مختلفًا، ويُحتسب استخدامها في خطوة واحدة، باستدعاء واحد لكل سلسلة مُعادة. يبدأ المثال بـv41690973، وهو مؤشر أسعار المستهلك لجميع البنود في كندا، ومصدره الجدول 18-10-0004-01. أضف أرقام المتجهات الأخرى التي نسختها إلى القائمة، ثم افحص الملاحظات المُعادة وقائمةmissing.import os import requests vectors = ["v41690973"] # Add other vector numbers copied from table pages. ids = list(dict.fromkeys(f"statcan:{vector}" for vector in vectors)) if not 1 <= len(ids) <= 50: raise ValueError("Supply between 1 and 50 distinct series ids") response = requests.get( "https://api.narwhalapi.com/v1/economics/catalogue/latest", headers={"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}, params={"ids": ",".join(ids)}, timeout=10, ) response.raise_for_status() data = response.json() for observation in data["observations"]: print(observation["id"], observation["period"], observation["value"]) print("Missing:", data["missing"]) - اقرأ السجل التاريخي واحسب التغير الشهري استخدم مسار الملاحظات لنطاق من الفترات. يشمل النطاق البداية والنهاية، ويجب أن تستخدما صيغة الفترة نفسها؛ وتستخدم السلاسل الشهرية
YYYY-MM. يطلب هذا المثال الكامل الفترة من يوليو إلى سبتمبر 2026 ويحسب تغير سبتمبر مقارنة بأغسطس. تصل القيم كسلاسل نصية لأعداد عشرية، لذلك يستخدم الحساب Decimal. تُقرَّب النتيجة المطبوعة إلى منزلتين عشريتين.import os from decimal import Decimal import requests response = requests.get( "https://api.narwhalapi.com/v1/economics/catalogue/series/observations", headers={"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}, params={ "id": "statcan:v41690973", "start": "2026-07", "end": "2026-09", "limit": 100, }, timeout=10, ) response.raise_for_status() series = response.json() values = {} for observation in series["observations"]: values[observation["period"]] = Decimal(observation["value"]) print( observation["period"], observation["value"], observation.get("released_on", ""), observation.get("status", ""), ) change = (values["2026-09"] / values["2026-08"] - Decimal("1")) * Decimal("100") print(f"September 2026 month-on-month change: {change:.2f}%")
احسب تغيرًا شهريًا من متجه CPI
تحتوي الاستجابة المسجلة لـ statcan:v41690973 على ملاحظات CPI لجميع البنود في كندا المعروضة هنا. لكل صف فترة ملاحظة وقيمة عشرية وتاريخ إصدار. ميّز بين تاريخ الإصدار والشهر الذي تصفه القيمة.
| الفترة | CPI, 2002=100 | تاريخ الإصدار |
|---|---|---|
| 2026-07 | 169.9 | 17 أغسطس 2026 |
| 2026-08 | 169.8 | 14 سبتمبر 2026 |
| 2026-09 | 170.0 | 19 أكتوبر 2026 |
التغير الشهري في سبتمبر هو (170.0 / 169.8 - 1) * 100، أي نحو 0.1178%. وبعد التقريب إلى منزلتين عشريتين، تكون النتيجة 0.12%. يقارن الحساب مستويات المؤشر لشهرين متتاليين. قيمة seasonal_adjustment المُعادة هي not_stated، لذا احتفظ بهذه التسمية إلى جانب النتيجة.
تتضمن استجابات هيئة الإحصاء الكندية إشعار النسبة ورابط الترخيص الخاصين بترخيص الحكومة المفتوحة لكندا. ليس للسلسلة سجل مراجعات أو نسخ تاريخية. يتبع الوصول إلى السجل التاريخي خطتك: تتيح Free آخر 12 شهرًا، وBasic آخر 5 سنوات، وPro السجل التاريخي الكامل. راجع مرجع API للسلاسل للتنقل بين الصفحات والخطط لحدود الوصول.
ما سلاسل هيئة الإحصاء الكندية غير المتاحة؟
تعيد المتجهات اليومية والأسبوعية ومتعددة السنوات ومتجهات السنة المالية والربع المالي 404 not_found. تدعم Narwhal متجهات هيئة الإحصاء الكندية الشهرية وربع السنوية والسنوية. تحقق من التواتر في نتيجة الكتالوج قبل نسخ رقم متجه من صفحة الجدول.
يعيد معرّف المتجه غير الصحيح البنية 400 invalid_series_id. وتوضح تفاصيله أن معرّف سلسلة هيئة الإحصاء الكندية هو v<vector number>. مرر المعرّف الكامل، مثل statcan:v41690973، عبر المعامل id. راجع أخطاء API لمعالجة الأخطاء.
كيف أقرأ حالة قيمة؟
اقرأ الحقل الاختياري status في كل ملاحظة. يظهر هذا الحقل عندما تكون للقيمة حالة مثل provisional أو estimated. احتفظ به مع الفترة والقيمة حتى يحافظ الحساب على هذا السياق.
احتفظ بـ released_on عند وجوده، واستخدم fetched_at للطابع الزمني للاسترجاع. لا تحتوي الاستجابة على stale: true إلا عندما تقدم Narwhal آخر نسخة احتفظت بها بسبب تعذر الوصول إلى المصدر. تصف حالة الملاحظة وحداثة الاستجابة خاصيتين منفصلتين.
نُشر في .
الخطوات التالية
أنشئ مفتاحًا مجانيًا واستدعِ واجهة API من شيفرتك. احصل على مفتاح API مجاني
