Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Python: Сети

Войти
Регистрация
Восстановить пароль
 
Dikoobraz
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 19
#1

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

06.02.2017, 20:27. Просмотров 391. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2017, 20:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменение кода запроса с Python 2 на Python 3 (Python):

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

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

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

Почему синтаксис Python 2.* и Python 3.* так отличается? - Python
Привет! Решил на досуге заняться изучением Python'a. Читаю книгу по второму питону, а пользуюсь третьим. Некоторые вещи приходится...

Порт pyqt5 (python 3.5) программы на android - Python - Python
Подскажите пожалуйста возможно ли программу написанную на python методами pyqt5 переделать под android этими методами? Если так, то как? ...

Python 35 Выполнить файл из python shell - Python
Есть файл do.py : print('start') import os import sys import re import inspect def someFunc(par):

1
dondublon
1212 / 901 / 102
Регистрация: 17.03.2012
Сообщений: 6,027
Записей в блоге: 5
07.02.2017, 10:07 #2
Цитата Сообщение от Dikoobraz Посмотреть сообщение
IndentationError: unindent does not match any outer indentation level
Ругается на отступы. Отступы в 2-м и 3-м устроены одинаково, так что, видимо, поменялось что-то ещё.

Цитата Сообщение от Dikoobraz Посмотреть сообщение
но он для 2 питона, а мне необходимо сделать это в 3-ем. Вероятно подскажите как изменить его или посоветуете, где почитать информацию о запросах.
В третьем питоне, в недрах requests, произошла замена, там, где была строка, теперь байты. Вероятно, дело в этом.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2017, 10:07
Привет! Вот еще темы с ответами:

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

Разбор кода Python - Python
Как можно протестировать работу данного кода # -*- coding: cp1251 -*- class Matrix(object): '''Matrix real numbers''' ...

Реализация кода в python 3.6 - Python
Подскажите как реализовать данный момент в python 3.6. Т.е. нужно избавиться от метода print в python 2.7 не могу, т.к. нет подходящих...

Интерпретатор кода на Python - Python
Добрый день столкнулся с написанием интерпретатора для своей ВМ(виртуальной машины) нашел код и немного его осмыслил, понял как работает...


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

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

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