كيفية تمرير قيم متعددة لمتغيرات متعددة في عنوان URL باستخدام Python
Title: كيفية تمرير قيم متعددة لمتغيرات متعددة في عنوان URL باستخدام Python
Body: في الجزء الأول من الكود، تم تمرير قيمة واحدة للمتغير ticker
في عنوان URL باستخدام %s
للتعبير عن القيمة المتغيرة. لكن في الجزء الثاني، تحاول تمرير قيم متعددة لمتغيرات متعددة (ticker
, a
, b
, c
, d
, e
, f
) باستخدام نفس الطريقة، وهو ما يسبب خطأ “TypeError: not enough arguments for format string” لأنك استخدمت %
بشكل غير صحيح.
-
حل مشكلة الوصول للطرق في جافا17/03/2024
-
حل مشكلة استثناء نهاية الملف في ActiveMQ05/04/2024
-
استخدام العلامات المتعددة في بناء Go05/04/2024
لتصحيح هذا الخطأ، يجب عليك استخدام علامة %
مرة واحدة فقط مع السلسلة النصية، ومن ثم استخدام فاصلات (,
أو +
) لدمج القيم المختلفة. هناك طريقتين لفعل ذلك، إما باستخدام format
أو باستخدام f-string
(في Python 3.6+). إليك كيفية تحقيق ذلك باستخدام f-string
:
pythonticker = 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 واسترداد البيانات. تأكد من تثبيت هذه الوحدة إذا لم تكن قد قمت بذلك بالفعل، يمكنك القيام بذلك باستخدام الأمر التالي:
bashpip install requests
كما يُفضل دائمًا استخدام try
و except
للتحقق من حدوث أي أخطاء أثناء استرداد البيانات. يمكنك تحسين الكود ليكون كالتالي:
pythonimport 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
. تم أيضًا إضافة محاولة للتحقق من وجود أي أخطاء وطباعة رسالة خطأ إذا كان هناك.