我有一个在BASH中成功调用的cURL命令,我希望将它移植到Python中。“反洗钱法”如下:
#!/bin/bash
ACCESS_TOKEN="123456789"
METADATA_FILENAME="metadata.json"
AUDIO_FILENAME="audio.wav"
curl -s -i \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-F "metadata=<${METADATA_FILENAME};type=application/json; charset=UTF-8" \
-F "audio=<${AUDIO_FILENAME};type=audio/L16; rate=16000; channels=1" \
https://access-alexa-na.amazon.com/v1/avs/speechrecognizer/recognize \
-o response.txt我目前正在尝试使用Python中的请求库,但似乎无法解密字段/表单。我目前有这种方法,并且无法确定如何将cURL命令解构成与Python兼容的格式:
endpoint = "https://access-alexa-na.amazon.com/v1/avs/speechrecognizer/recognize"
r = requests.post(
endpoint,
headers={
"Authorization": "Bearer " + ACCESS_TOKEN
},
forms={
# ???
},
files={
# ???
}
)如有任何帮助,我们将不胜感激:)
发布于 2017-05-19 10:25:41
多亏了t.m.adam的评论。
结果显示,文件参数中的最后一个字段接受所有信息,用分号分隔。因此,我能够用它来处理这个问题:
r = requests.post(
endpoint,
headers={
"Authorization": "Bearer " + auth.ACCESS_TOKEN
},
files={
'metadata': (METADATA_FILENAME, open(METADATA_FILEPATH, 'rb'), 'application/json; charset=UTF-8'),
'audio': (AUDIO_FILENAME, open(AUDIO_FILEPATH, 'rb'), 'audio/L16; rate=16000; channels=1')
}
)发布于 2017-05-18 17:21:30
试着使用这个:从cURL到Python请求
https://stackoverflow.com/questions/44054123
复制相似问题