البرمجة

كيفية تمرير قيم متعددة لمتغيرات متعددة في عنوان URL باستخدام Python

Title: كيفية تمرير قيم متعددة لمتغيرات متعددة في عنوان URL باستخدام Python

Body: في الجزء الأول من الكود، تم تمرير قيمة واحدة للمتغير ticker في عنوان URL باستخدام %s للتعبير عن القيمة المتغيرة. لكن في الجزء الثاني، تحاول تمرير قيم متعددة لمتغيرات متعددة (ticker, a, b, c, d, e, f) باستخدام نفس الطريقة، وهو ما يسبب خطأ “TypeError: not enough arguments for format string” لأنك استخدمت % بشكل غير صحيح.

لتصحيح هذا الخطأ، يجب عليك استخدام علامة % مرة واحدة فقط مع السلسلة النصية، ومن ثم استخدام فاصلات (, أو +) لدمج القيم المختلفة. هناك طريقتين لفعل ذلك، إما باستخدام format أو باستخدام f-string (في Python 3.6+). إليك كيفية تحقيق ذلك باستخدام f-string:

python
ticker = line.strip() a = '08' b = '08' c = '2015' d = '08' e = '08' f = '2016' url = f"http://ichart.finance.yahoo.com/table.csv?s={ticker}.ns&a={a}&b={b}&c={c}&d={d}&e={e}&f={f}&g=d&ignore=.csv" r = requests.get(url)

في هذا الكود، تم استخدام f-string لتنسيق عنوان URL، مما يتيح لك تمرير قيم متعددة لمتغيرات متعددة بشكل صحيح.

المزيد من المعلومات

بالطبع! في الكود الذي قدمته، يتم استخدام وحدة requests لإرسال طلب إلى عنوان URL واسترداد البيانات. تأكد من تثبيت هذه الوحدة إذا لم تكن قد قمت بذلك بالفعل، يمكنك القيام بذلك باستخدام الأمر التالي:

bash
pip install requests

كما يُفضل دائمًا استخدام try و except للتحقق من حدوث أي أخطاء أثناء استرداد البيانات. يمكنك تحسين الكود ليكون كالتالي:

python
import requests # تكرار عبر الأسطر في ملف نصي with open('tickers.txt', 'r') as file: for line in file: try: ticker, a, b, c, d, e, f = line.strip().split(',') url = f"http://ichart.finance.yahoo.com/table.csv?s={ticker}.ns&a={a}&b={b}&c={c}&d={d}&e={e}&f={f}&g=d&ignore=.csv" r = requests.get(url) # استخدام البيانات المستردة # على سبيل المثال: print(r.text) except Exception as e: print(f"حدث خطأ: {e}")

في هذا التعديل، يتم قراءة البيانات من ملف نصي (tickers.txt)، ويتم تقسيم كل سطر إلى عدة متغيرات باستخدام split(','). ثم يتم استخدام هذه المتغيرات في تكوين عنوان URL باستخدام f-string. تم أيضًا إضافة محاولة للتحقق من وجود أي أخطاء وطباعة رسالة خطأ إذا كان هناك.

زر الذهاب إلى الأعلى