🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ دانشجوی سون‌لرن
not subscriptable
جامعه پایتون (وب) ایجاد شده در ۰۵ فروردین ۱۴۰۲

سلام.موقع اجرا کد‌ها این خطا رو می‌گیرم.ممنون میشم راهنمایی کنید

Traceback (most recent call last):
  File "/home/office/Project7learn/exchange/exchange/main.py", line 21, in 
    archive(res["timestamp"], res["rates"])
TypeError: 'NoneType' object is not subscriptable

داخل فایل کانفیگ هم این رو نوشتم.چون کد‌های توی ویدیو جواب نمی‌داد

url = "https://api.apilayer.com/currency_data/live?source=source¤cies=currencies"
payload = {}
headers= {
  "apikey": "LKyeF4UFP9JPXzbWOJEPxkIMegDLO7c8"
}
اسماعیل زرنگ ۰۵ فروردین ۱۴۰۲، ۱۲:۰۸

درود وقت بخیر

خط ۲۱ از کد خطا داره ! یک چیزی این وسط null هستش که توی این تصاویر مشخص نیست چی هست

Reza Mobaraki ۰۵ فروردین ۱۴۰۲، ۱۴:۱۷

داخل فایل مین این هست و داخل فایل کانفیگ هم که پست قبلی نوشته بودم.عکس رو هم پیوست کردم

import requests
import json
from config import url
def get_rates():
    response = requests.get(url)
    if response.status_code == 200:
       return json.loads(response.text)
    return None
def archive(filename, rates):
    with open(f'archive/{filename}.json', 'w') as f:
        f.write(json.dumps(rates))
if __name__ == "__main__":
    res = get_rates()
    archive(res["timestamp"], res["rates"])


اسماعیل زرنگ ۰۵ فروردین ۱۴۰۲، ۱۵:۱۲

سلام مورد اول اینکه headers رو ارسال نکردید

مورد دوم اینکه url اشتباه هست

import requests
import json
url = "https://api.apilayer.com/fixer/latest?base=USD"
payload = {}
headers= {
  "apikey": "LKyeF4UFP9JPXzbWOJEPxkIMegDLO7c8"
}
def get_rates():
    response = requests.get(url,headers=headers)
    if response.status_code == 200:
       return json.loads(response.text)
    return None
def archive(filename, rates):
    with open(f'archive/{filename}.json', 'w') as f:
        f.write(json.dumps(rates))
if __name__ == "__main__":
    res = get_rates()
    archive(res["timestamp"], res["rates"])

موفق باشید ?

بهترین پاسخ
Reza Mobaraki ۰۵ فروردین ۱۴۰۲، ۲۲:۲۸