Я постоянно размышляю с API IBMWatson Natural Language Understanding. На официальной странице руководства она показывает команду basi c curl для использования API следующим образом:
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: application/json" \
--data '{
"url": "http://newsroom.ibm.com/Guerbet-and-IBM-Watson-Health-Announce-Strategic-Partnership-for-Artificial-Intelligence-in-Medical-Imaging-Liver",
"features": {
"sentiment": {},
"categories": {},
"concepts": {},
"entities": {},
"keywords": {}
}
}' \
"{url}/v1/analyze?version=2019-07-12"
Команда в основном анализирует страницу, предоставленную в ключе url параметра данных, и возвращает анализ. Я хочу сделать то же действие, используя библиотеку запросов Python, однако я новичок в этом. Насколько я понял из Интернета, следующий формат должен соответствовать одному и тому же запросу:
headers={'Content-Type': 'application/json'}
features = {"sentiment": {},"categories": {},"concepts": {},"entities": {},"keywords": {}}
myData ={
"url": "http://newsroom.ibm.com/Guerbet-and-IBM-Watson-Health-Announce-Strategic-Partnership-for-Artificial-Intelligence-in-Medical-Imaging-Liver",
"features": features
}
d = requests.post(
auth=('apikey','7LNEjCMvP6ZcNShjAkjPob7QSCfIHeZMQkn4Ho3dQgte'),
headers=headers,
data=myData,
url='https://gateway-lon.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2019-07-12'
)
Однако сервер отвечает «400», что, по-моему, вызвано ошибкой в моем format.
- Я протестировал редактирование моего apikey, что привело к ошибке 401 «Unauthorized», как и ожидалось. Итак, я знаю, что могу получить доступ к серверу и пройти аутентификацию с моим ключом.
- Я проверил удаление параметра «заголовки», в результате чего 415 «Неподдерживаемый тип носителя», поэтому тип возвращаемого значения должен быть JSON Я думаю.
Я не уверен в том, что я делаю неправильно, и ценю любую помощь. Спасибо.