Задать вопрос
@Drayff
Java programmer.

В чём проблема запроса к api Albion Online Data?

Есть проблема связанная с запросом к API Albion Online Data
Вот мой код:
import requests

def get_item_prices(item_id):
    url = f"https://www.albion-online-data.com/api/v2/stats/Prices/{item_id}.json?locations=Thetford"
    response = requests.get(url)

    if response.status_code == 200:
        data = response.json()
        return data
    else:
        return None

with open('items.txt', 'r') as file:
    items = [line.strip().split(':')[1].strip() for line in file]

for item in items:
    item_id = item.split()[0]
    prices = get_item_prices(item_id)

    if prices is not None:
        print(f"Цены для предмета {item} в городе Тетфорд:")
        for price in prices:
            if price.get('city') == 'Thetford':
                sell_price_min = price.get('sellPriceMin')
                sell_price_max = price.get('sellPriceMax')
                buy_price_min = price.get('buyPriceMin')
                buy_price_max = price.get('buyPriceMax')

                if sell_price_min is not None:
                    print(f"Sell Price Min: {sell_price_min}")
                if sell_price_max is not None:
                    print(f"Sell Price Max: {sell_price_max}")
                if buy_price_min is not None:
                    print(f"Buy Price Min: {buy_price_min}")
                if buy_price_max is not None:
                    print(f"Buy Price Max: {buy_price_max}")
                print()

Вот гайд на апи: тык
Вот ссылка на сам файл items.txt: тык
Ошибка в том, что выводится только f"Цены для предмета {item} в городе Тетфорд:, а вот сами цены нет.
Помогите пожалуйста!
  • Вопрос задан
  • 1038 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Думаю, причина в использовании метода словарей get - он не находит указанного ключа в словаре и возвращает None, а дальше проверка не проходит и цикл завершается.
Почему возвращается None, это вы самостоятельно разбирайтесь, то-ли в ключе опечатка, то-ли такого ключа не возвращается, то-ли ваш парсинг где-то косячит.

Советую поделить код на функции и отлаживать их отдельно. Советую после проверки на None в случае else выводить сообщение, к примеру «такого ключа не обнаружено» и т.п.
Ответ написан
Комментировать
SoreMix
@SoreMix Куратор тега Python
yellow
Откройте ссылку с любым предметом, например https://www.albion-online-data.com/api/v2/stats/Pr...

Посмотрите как выглядят ключи с ценой:
{"sell_price_min":6198,"sell_price_min_date":"2023-06-12T19:20:00","sell_price_max":7300}

А вы ищите sellPriceMax.

sellPriceMax != sell_price_max
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы