具有多个JSON有效负载的Grequests

时间:2017-05-16 19:35:03

标签: python json google-api python-requests grequests

我正在尝试使用JSON有效负载同时发送多个POST请求并检索JSON结果。我已经阅读了其他一些关于SO的帖子,但没有什么可以做到的。

UIAlerts

如果我使用response.json(),则返回错误:

def transcribe(vid_segs):
   payloads = []
   for vid in vid_segs:
      vid = base64.b64encode(open(vid).read())
      payload = {
      "config": {
            "encoding": "LINEAR16",
            "sampleRateHertz": 16000,
            "languageCode": "en-US",
            "speechContexts": {
                "phrases:": ["Barack", "Obama", "Barack Obama"]
            }
        },
        "audio": {
            "content": vid
        }
    }
    payloads.append(payload)

   url = "https://speech.googleapis.com/v1/speech:recognize?key=MYAPIKEY"
   unsent_request = []
   for payload_single in payloads:
      unsent_request.append(grequests.get(url,
                                        params=payload_single))
   responses = grequests.map(unsent_request)
   for response in responses:
      print response.json()
      response.close()

如果我尝试使用response.json,那么返回的不是实际的JSON内容,只是对象详细信息和响应代码:

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

response.json是一种方法,因此您需要调用它:response.json()JSONDecodeError告诉您响应无效JSON。尝试打印response.text(响应为文本)或response.content(二进制响应)以查看响应实际包含的内容。

正如@Lohmar ASHAR在评论中指出的那样,你得到了404,所以你可能不会觉得你没有得到JSON。

有关回复的更多信息:http://docs.python-requests.org/en/master/user/quickstart/#response-content