ایجاد فایل json

پرسیده شده
فعالیت 926 روز پیش
دیده شده 388 بار
0

سلام من این بخش کد رو متوجه نمیشم که چرا از with open استفاده کرده

def archive(filename, rates):
    with open(f'archive/{filename}.json', 'w') as f:
        f.write(json.dumps(rates))

این بخش رو هم متوجه نمیشم

archive(res['timestamp'], res['rates'])
فایل پیوست

علی بادپروا
علی بادپروا

25 مهر 00

0
حذف شده

سلااااااااااااااااام علی جان

جواب سوال ۱) برای کار با فایل best practice هست که از with استفاده کنیم. یعنی یه روش توصیه شده و یکی از بهترین روش های کار با فایل هست.

تو سایت خود پایتون هم این رو گفته:

It is good practice to use the with keyword when dealing with file objects. The advantage is that the file is properly closed after its suite finishes, even if an exception is raised at some point. Using with is also much shorter than writing equivalent try-finally blocks:

 

جواب سوال ۲) لطفا تو اینجور سوال ها حتما بگو که خط چندم کدوم فایل این رو نوشته.

خط 21 فایل main.py که نوشته:

    archive(res['timestamp'], res['rates'])

خب تو این خط داریم به تابع archive دو تا آرگومان res['timestamp'], res['rates'] رو میدیم.

برگردیم یه خط عقب تر داخل متغیر res نتیجه تابع get_rates هست.

تابع get_rates درخواست میزنه آدرسی که بهش دادیم و اگر با موفقیت جواب بگیره (یعنی status_code پاسخ 200 باشه)، متن response که مطمئن هستیم json هست رو با تابع json.loads لود میکنیم و تبدیلش میکنیم به ابجکت های پایتون. یعنی از string جیسون با تابع json.loads تبدیلش میکنیم به دیکشنری، لیست، int، float و غیره.

میدونیم response این url حتما یه دیکشنری هست. و باهاش مثل دیکشنری برخورد میکنیم و چون قبلا محتوای json رو دیدیم میدونیم این دیکشنری کلید های timestamp, rates رو داره.

خب پس بعد از اجرا خط 20 فایل main.py:

    res = get_rates()

داخل متغیر res یه دیکشنری هست. تو خط 21 که در موردش سوال پرسیدی. داریم تابع archive رو صدا میزنیم که ۲ تا آرگومان میگیره. به آرگومان filename مقدار timestamp رو میدیم (که یه عدد هست که طبق یه استانداری به ازای هر ثانیه تا تاریخ یه عدد داریم و با تبدیلش میتونیم datetime اون ثانیه تو تاریخ رو بدست بیاریم).

به آرگومان rates این تابع مقدار rates رو میدیم که نرخ های تبدیل واحد ارز هستن.

 

امیدوارم کامل و شفاف توضیح دادم باشم و ابهاماتت حل شده باشه.

باز اگر سوالی داشتی در خدمتم.

فایل پیوست

محمدعلی رضا

توسط

محمدعلی رضا

25 مهر 00