Сон Python библиотеки не удается, когда я пытаюсь сделать вызов get, когда URL был тире (-)

1

Я использую библиотеку slython для вызова HTTP-сервиса. Вот как это выглядит. Мне нужно сделать запрос для этого URL https://sample-billing-api.test/2/billing-accounts? Id = 2169.

Когда я запускаю это, я получаю сообщение об ошибке NameError: имя "учетные записи" не определено.

import slumber

class ParseAuth(AuthBase):
def __call__(self, r):
    r.headers['x-api-key'] = '<API KEY>'
    r.headers['Content-Type'] = 'application/json'
    return r

api = slumber.API('https://sample-billing-api.test/2/', append_slash=False, auth=ParseAuth())
response = api.billing-accounts.get(id=2169)

api.billing-accounts.get(id = 2169) не работает.

Одним из решений является переход на пакет запросов python, как-то вроде этого. Этот подход работает. Но мне нужно использовать пакет slumber, поскольку я использую пакет Slumber для всех вызовов API. Кроме того, я написал декораторов для обработки отклика.

import requests
        headers = {
        'x-api-key': '<api_key>',
        'Content-Type': 'application/json'
    }
    with requests.session() as s:
        res = s.get(
            'https://sample-billing-api.test/2/billing-accounts?id=2169',
            headers=headers
        )
        s.close()

Заранее спасибо.

  • 0
    кажется, не будет дружелюбным к URL с -
Теги:
python-requests
python-3.x

1 ответ

0
Лучший ответ

Это решение получилось окончательно...

import slumber
class ParseAuth(AuthBase):
   def __call__(self, r):
       r.headers['x-api-key'] = '<API KEY>'
       r.headers['Content-Type'] = 'application/json'
       return r

 api = slumber.API('https://sample-billing-api.test/2/', append_slash=False, 
 auth=ParseAuth())
 response = getattr(self.api, "billing-accounts").get(id=2169)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню