0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 22
1

Изменение кода запроса с Python 2 на Python 3

06.02.2017, 20:27. Показов 987. Ответов 1
Метки нет (Все метки)

Доброго времени суток.
Я пишу программу и для её реализации мне необходимо, чтобы она делала запрос на гугл сервер и возвращала мне ответ. Код который мне нужен я нашел на хабре, но он для 2 питона, а мне необходимо сделать это в 3-ем. Вероятно подскажите как изменить его или посоветуете, где почитать информацию о запросах. Пробовал вникнуть в requests, но не могу найти связи.
Сам код:
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def Send():
    global ANSWER
    url = 'https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=en-EN'
    flac=open('output.flac',"rb").read()
    header = {'Content-Type' : 'audio/x-flac; rate=16000'}
    req = urllib2.Request(url, flac, header)
    data = urllib2.urlopen(req)
    a = data.read()
    ANSWER = eval(a)
    if ANSWER['status'] == 5:
        print 'Sorry, I do not understand you.'
        ANSWER = 0
 
    else:
     ANSWER = ANSWER['hypotheses'][0]['utterance']
     print ANSWER
    return ANSWER


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

Добавлено через 31 минуту
Взял часть кода из SpeechRecognition, получается что-то такое:
Кликните здесь для просмотра всего текста

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def Send(LANG, key=None):
    if key is None: 
        key = "AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw"
    url = 'https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang='+LANG
    flac = open('D:\project\output.flac',"rb").read()
    header = {'Content-Type' : 'audio/x-flac; rate=16000'}
    
    request = Request(url, data=flac, header)
 
    # obtain audio transcription results
    try:
        response = urlopen(request, timeout=self.operation_timeout)
    except HTTPError as e:
        raise RequestError("recognition request failed: {}".format(e.reason))
    except URLError as e:
        raise RequestError("recognition connection failed: {}".format(e.reason))
    response_text = response.read().decode("utf-8")
 
    actual_result = []
    for line in response_text.split("\n"):
        if not line: continue
        result = json.loads(line)["result"]
        if len(result) != 0:
            actual_result = result[0]
            break
    
    return actual_result


Но видимо не до конца правильно, так как выдает ошибку
Кликните здесь для просмотра всего текста

File "D:\project\prj.py", line 54
flac = open('D:\project\output.flac',"rb").read()
^
IndentationError: unindent does not match any outer indentation level
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2017, 20:27
Ответы с готовыми решениями:

Формирование SQL запроса в python
Выполняю в цикле такой код: sql = '''INSERT INTO items (res_id, log_id, link, title, content,...

Повтор sql запроса python 3
Добрый день ! При выполнении sql запроса в переменную выгружаются данные, которые уже находятся в...

Python - момент истины. Python - как оружие возмездие против системы
Какие модули в python мне нужны для взлома баз данных? Перехвата информации? Внедрения в систему? ...

Запуск скрипта написанного на python на windows, где не установлен python
Не запускается скрипт на Windows, где не установлен python. Команда в коде на выполнение написана...

1
Эксперт Python
4543 / 1969 / 354
Регистрация: 17.03.2012
Сообщений: 9,893
Записей в блоге: 5
07.02.2017, 10:07 2
Цитата Сообщение от Dikoobraz Посмотреть сообщение
IndentationError: unindent does not match any outer indentation level
Ругается на отступы. Отступы в 2-м и 3-м устроены одинаково, так что, видимо, поменялось что-то ещё.

Цитата Сообщение от Dikoobraz Посмотреть сообщение
но он для 2 питона, а мне необходимо сделать это в 3-ем. Вероятно подскажите как изменить его или посоветуете, где почитать информацию о запросах.
В третьем питоне, в недрах requests, произошла замена, там, где была строка, теперь байты. Вероятно, дело в этом.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2017, 10:07

Cx_freeze python error in main script как исправить- Python
Пытался создать из .py .exe , но при запуске .exe получаю ошибку вот код setup.py from cx_Freeze...

Как из Python скрипта выполнить другой python скрипт?
Как из Python скрипта выполнить другой python скрипт? Если он находится в той же папке но нужно...

Выполнение запроса SQL в python-файле
бд sqlite, python 3.7 Есть вот такой запрос: SELECT id, LastName, FirstName from employees...

Динамическое формирование SQL запроса в Python 3
Доброго времени суток. Работаю с базамм данных SQLITE3. Безопасным шаблоном запросом является...

Не могу получить ответ от python скрипта и на его основе создать список (зависимые списки js ajax python)
Привет! Есть необходимость сделать динамические списки при помощи js, ajax jQuery, Python. Данные...

Что лучше учить Python 2 или Python 3?
хочу начать учить питон но полазив в нете, частенько попадалась информация что вроде как 2 будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.