Получение ошибки с синтаксисом при получении файла JSON - PullRequest
0 голосов
/ 27 июня 2019

У меня проблема с созданием API генератора случайных кавычек в Twitter. Я следую этому уроку:

https://www.twilio.com/blog/build-deploy-twitter-bots-python-tweepy-pythonanywhere

Но я получаю ошибку, которой у него нет. Это код:

import requests 

api_key = '*****' 
api_url = 'https://andruxnet-random-famous-quotes.p.rapidapi.com'

headers = {'afd9cbe77emshf06f5cb2f889689p1ca1c3jsne6e79ad808cc' : 
api_key, 'http://andruxnet-random-famous-quotes.p.rapidapi.com' : 
api_url}

# The get method is called when we 
# want to GET json data from an API endpoint
quotes = requests.get(quotes = requests.get(api_url, 
headers=headers)

print(quotes.json())

И это ошибка:

File "twitter_bot.py", line 12
print(quotes.json())

SyntaxError: invalid syntax

Что я делаю не так ?? (Я специально надел ключ на ***, я знаю, что правильный ключ должен идти туда)

Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

Учебник не так стар, но, кажется, он уже устарел.

Используя пример из Документация RapidAPI (для API случайных известных котировок) Я создал код Python, который дает некоторую информацию с сервера (но все еще не кавычки)

import requests 

url = "https://andruxnet-random-famous-quotes.p.rapidapi.com/?count=10&cat=famous"

headers={
    "X-RapidAPI-Host": "andruxnet-random-famous-quotes.p.rapidapi.com",
    "X-RapidAPI-Key": "afd9cbe77emshf06f5cb2f889689p1ca1c3jsne6e79ad808cc",
}

quotes = requests.get(url, headers=headers)

print(quotes.text)
#print(quotes.json())

Результат:

{"message":"You are not subscribed to this API."}

То же самое для POST

import requests 

url = "https://andruxnet-random-famous-quotes.p.rapidapi.com/?count=10&cat=famous"

headers={
    "X-RapidAPI-Host": "andruxnet-random-famous-quotes.p.rapidapi.com",
    "X-RapidAPI-Key": "afd9cbe77emshf06f5cb2f889689p1ca1c3jsne6e79ad808cc",
    "Content-Type": "application/x-www-form-urlencoded"
}

quotes = requests.post(url, headers=headers)

print(quotes.text)
#print(quotes.json())

Результат:

{"message":"You are not subscribed to this API."}

Нужно еще поработать, чтобы получить цитаты.

0 голосов
/ 27 июня 2019

У вас ошибка копирования и вставки; как-то вы положили quotes = requests.get( дважды.

Это должно быть просто:

# The get method is called when we 
# want to GET json data from an API endpoint
quotes = requests.get(api_url, headers=headers)

print(quotes.json())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...