#python #json
#python #json
Вопрос:
Я создаю программное обеспечение для отслеживания моего портфеля и торговли. В настоящее время я пытаюсь получить позиции своего аккаунта из TD API.
acct_endpt = 'https://api.tdameritrade.com/v1/accounts/{accountId}'
full_url_acct = acct_endpt.format(accountId='accountId')
account = requests.get(url=full_url_acct,
params={'fields' : 'positions', 'apikey' : 'apikey'})
acct_content = json.loads(account.content)
Мой приведенный выше код возвращает мне следующую ошибку:
json.decoder.JSONDecodeError: Expecting value: line 2 column 11 (char 11)
Обновление: я удалил строку, содержащую json.loads()
, поскольку она возвращала ошибку 401 [Сообщение об ошибке, указывающее, что вызывающий абонент должен передать действительный authToken в заголовке запроса авторизации HTTP]. Должно быть, я fields
неправильно передаю параметры apikey
and . Как будет выглядеть синтаксис для правильной передачи этих параметров?
Ответ №1:
Ваши параметры выглядят правильно, но я думаю, что форматирование URL не делает то, что вы хотите. Вместо этого вы можете отформатировать свой URL-адрес с помощью f-string следующим образом:
accountId = "ACCOUNT_ID"
acct_endpt = f"https://api.tdameritrade.com/v1/accounts/{accountId}"
Комментарии:
1. Однако используемая f-строка по-прежнему возвращает ошибку 401. Это означает, что он не получает мой ключ api / авторизации. Как я могу это исправить?
2. @BrianCos Просматривает документацию по API TD Ameritrade, похоже, что здесь используется токен на предъявителя. До этого вызова вы получаете токен на предъявителя через API токена доступа к Post? Источники: Учетные записи: developer.tdameritrade.com/account-access/apis/get/accounts /… Токен на предъявителя: developer.tdameritrade.com/authentication/apis/post/token-0