当我运行代码时,它会说“不可接受406”,如何修复它?

2024-05-20 10:26:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在ibmcloud中搜索了一下,在他们的错误处理中,他们说服务器不支持这种类型的文件

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)

this is the code

and this the output


Tags: textnamefromimportauthenticatorprofileibmvalues
1条回答
网友
1楼 · 发布于 2024-05-20 10:26:30

首先,我要告诉您,通过在您的问题中共享您的凭据密钥,您已经泄露了它,您应该尽快撤销它。你知道吗

获取HTTP406的原因是,您提供了无效的accept类型text/plain。如果您查看服务的pythonsdkapi文档https://cloud.ibm.com/apidocs/personality-insights?code=python#get-profile,您将看到第二个参数是accept,唯一有效的类型是application/jsontext/csv。你知道吗

我认为您实际上是在尝试设置content_type,所以您需要将服务调用设置为:


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


相关问题 更多 >