когда я запускаю код, он говорит "не приемлемо 406", как я могу это исправить? - PullRequest
0 голосов
/ 12 октября 2019

и я искал в облаке IBM и в своей обработке ошибок они сказали, что сервер не поддерживает этот тип файлов

from ibm_watson import PersonalityInsightsV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
authenticator = IAMAuthenticator('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
personality_insights = PersonalityInsightsV3(
       version='2019-10-12',
authenticator=authenticator)
personality_insights.set_service_url('https://gateway-lon.watsonplatform.net/personality-insights/api')
profile_text = open("personality.txt").read()
profile = personality_insights.profile(profile_text,"text/plain").get_result()
needs = profile["needs"]
values = profile["values"]
personality = profile["personality"]
def print_traits(traits_category_name, traits):
  print(traits_category_name + ":")
for trait in traits:
  print(trait["name"] + ": {:.3f}%".format(
trait["percentile"] * 100))
print("\n")
print_traits("Needs", needs)
print_traits("Values", values)
print_traits("Personality", personality)

это код

и это вывод

1 Ответ

0 голосов
/ 14 октября 2019

Позвольте мне начать с того, что, сообщив свой ключ к учетным данным в своем вопросе, вы скомпрометировали его, и вы должны отозвать его как можно скорее.

Причина, по которой вы получаете HTTP 406, в том, что вы указали неверный тип accept text/plain. Если вы посмотрите на документацию по API Python SDK для службы - https://cloud.ibm.com/apidocs/personality-insights?code=python#get-profile - вы увидите, что вторым параметром является accept, и единственными допустимыми типами являются application/json и text/csv.

Я думаю, что вы на самом деле пытались установить content_type, поэтому вам нужно вызвать службу:


profile = personality_insights.profile(profile_text, accept='application/json', content_type='text/plain').get_result()


...