Найти - Пользователи
Полная версия: Изменение кода запроса с Python 2 на Python 3
Начало » Python для новичков » Изменение кода запроса с Python 2 на Python 3
1
Firsak
Доброго времени суток.
Я пишу программу и для её реализации мне необходимо, чтобы она делала запрос на гугл сервер и возвращала мне ответ. Код который мне нужен я нашел на хабре, но он для 2 питона, а мне необходимо сделать это в 3-ем. Вероятно подскажите как изменить его.
Сам код:
 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

Импортирую:
 import pyaudio
import wave
import requests
import os

Взял часть кода из SpeechRecognition, получается что-то такое:
 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)
 
    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

Подскажите, что и как изменить, может что добавить.
Заранее спасибо.
scidam
Отступ в строке flac = open('D:\project\output.flac',“rb”).read() неправаильный, проверьте содержимое исходника, в приведенном коде в том месте вроде отступы допустимы и не должны приводить к ошибке.
FishHook
scidam
отступы допустимы и не должны приводить к ошибке.
Скорее всего автор намешал пробелов с табами
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB