Я пытаюсь использовать API Youtube в Python, вот мой код:
import googleapiclient.errors
import googleapiclient.discovery
import os
from googleapiclient.discovery import build
api = '*******************************************'
def main():
api_service_name = "youtube"
api_version = "v3"
client_secrets_file = "YOUR_CLIENT_SECRET_FILE.json"
youtube = googleapiclient.discovery.build(
api_service_name, api_version, developerKey=api)
request = youtube.search().list(
part = "snippet",
maxResults=25,
q = "star wars"
)
response = request.execute()
print(response)
if __name__ == "__main__":
main()
Это должно отправить запрос на результаты поиска по запросу «звездные войны», но вместо этого я получаю ошибку в заголовке. Использование поискового запроса по умолчанию «surfing», кажется, работает, но все остальное не работает. Если это важно, я использую Windows и текстовый редактор Atom.
Это сработало, спасибо!
Причина вашей проблемы в том, что ваш терминал Windows не может отображать кодовую точку Unicode U+279C. Если вы посмотрите внимательно, в выводе терминала этот символ должен быть экранирован как \u279c
(и аналогично все другие символы, отличные от ASCII, если на то пошло).
Теперь я понимаю, это имеет смысл.
Я хотел бы добавить ответ на этот вопрос для тех, у кого есть аналогичная проблема. Самое простое решение (как ответил stvar):
Вместо этого попробуйте
print(json.dumps(response, ensure_ascii = True))
. (Конечно, тоже естьimport json
.)
Терминал Windows не может отображать определенные символы, поэтому ASCII устранил эту проблему.
Вместо этого попробуйте
print(json.dumps(response, ensure_ascii = True))
. (Конечно, тоже естьimport json
.)